{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.OSTree.Flags
    (

 -- * Flags
-- ** ChecksumFlags #flag:ChecksumFlags#

    ChecksumFlags(..)                       ,


-- ** DiffFlags #flag:DiffFlags#

    DiffFlags(..)                           ,


-- ** RepoCommitModifierFlags #flag:RepoCommitModifierFlags#

    RepoCommitModifierFlags(..)             ,


-- ** RepoCommitState #flag:RepoCommitState#

    RepoCommitState(..)                     ,


-- ** RepoCommitTraverseFlags #flag:RepoCommitTraverseFlags#

    RepoCommitTraverseFlags(..)             ,


-- ** RepoListObjectsFlags #flag:RepoListObjectsFlags#

    RepoListObjectsFlags(..)                ,


-- ** RepoListRefsExtFlags #flag:RepoListRefsExtFlags#

    RepoListRefsExtFlags(..)                ,


-- ** RepoPullFlags #flag:RepoPullFlags#

    RepoPullFlags(..)                       ,


-- ** RepoResolveRevExtFlags #flag:RepoResolveRevExtFlags#

    RepoResolveRevExtFlags(..)              ,


-- ** SePolicyRestoreconFlags #flag:SePolicyRestoreconFlags#

    SePolicyRestoreconFlags(..)             ,


-- ** SysrootSimpleWriteDeploymentFlags #flag:SysrootSimpleWriteDeploymentFlags#

    SysrootSimpleWriteDeploymentFlags(..)   ,


-- ** SysrootUpgraderFlags #flag:SysrootUpgraderFlags#

    SysrootUpgraderFlags(..)                ,


-- ** SysrootUpgraderPullFlags #flag:SysrootUpgraderPullFlags#

    SysrootUpgraderPullFlags(..)            ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL


-- Flags SysrootUpgraderPullFlags
{- |
/No description available in the introspection data./
-}
data SysrootUpgraderPullFlags =
      SysrootUpgraderPullFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootUpgraderPullFlagsAllowOlder
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootUpgraderPullFlagsSynthetic
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherSysrootUpgraderPullFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SysrootUpgraderPullFlags where
    fromEnum SysrootUpgraderPullFlagsNone = 0
    fromEnum SysrootUpgraderPullFlagsAllowOlder = 1
    fromEnum SysrootUpgraderPullFlagsSynthetic = 2
    fromEnum (AnotherSysrootUpgraderPullFlags k) = k

    toEnum 0 = SysrootUpgraderPullFlagsNone
    toEnum 1 = SysrootUpgraderPullFlagsAllowOlder
    toEnum 2 = SysrootUpgraderPullFlagsSynthetic
    toEnum k = AnotherSysrootUpgraderPullFlags k

instance P.Ord SysrootUpgraderPullFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag SysrootUpgraderPullFlags

-- Flags SysrootUpgraderFlags
{- |
Flags controlling operation of an 'GI.OSTree.Objects.SysrootUpgrader.SysrootUpgrader'.
-}
data SysrootUpgraderFlags =
      SysrootUpgraderFlagsIgnoreUnconfigured
    {- ^
    Do not error if the origin has an unconfigured-state key
    -}
    | AnotherSysrootUpgraderFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SysrootUpgraderFlags where
    fromEnum SysrootUpgraderFlagsIgnoreUnconfigured = 2
    fromEnum (AnotherSysrootUpgraderFlags k) = k

    toEnum 2 = SysrootUpgraderFlagsIgnoreUnconfigured
    toEnum k = AnotherSysrootUpgraderFlags k

instance P.Ord SysrootUpgraderFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "ostree_sysroot_upgrader_flags_get_type" c_ostree_sysroot_upgrader_flags_get_type ::
    IO GType

instance BoxedFlags SysrootUpgraderFlags where
    boxedFlagsType _ = c_ostree_sysroot_upgrader_flags_get_type

instance IsGFlag SysrootUpgraderFlags

-- Flags SysrootSimpleWriteDeploymentFlags
{- |
/No description available in the introspection data./
-}
data SysrootSimpleWriteDeploymentFlags =
      SysrootSimpleWriteDeploymentFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsRetain
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsNotDefault
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsNoClean
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsRetainPending
    {- ^
    /No description available in the introspection data./
    -}
    | SysrootSimpleWriteDeploymentFlagsRetainRollback
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherSysrootSimpleWriteDeploymentFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SysrootSimpleWriteDeploymentFlags where
    fromEnum SysrootSimpleWriteDeploymentFlagsNone = 0
    fromEnum SysrootSimpleWriteDeploymentFlagsRetain = 1
    fromEnum SysrootSimpleWriteDeploymentFlagsNotDefault = 2
    fromEnum SysrootSimpleWriteDeploymentFlagsNoClean = 4
    fromEnum SysrootSimpleWriteDeploymentFlagsRetainPending = 8
    fromEnum SysrootSimpleWriteDeploymentFlagsRetainRollback = 16
    fromEnum (AnotherSysrootSimpleWriteDeploymentFlags k) = k

    toEnum 0 = SysrootSimpleWriteDeploymentFlagsNone
    toEnum 1 = SysrootSimpleWriteDeploymentFlagsRetain
    toEnum 2 = SysrootSimpleWriteDeploymentFlagsNotDefault
    toEnum 4 = SysrootSimpleWriteDeploymentFlagsNoClean
    toEnum 8 = SysrootSimpleWriteDeploymentFlagsRetainPending
    toEnum 16 = SysrootSimpleWriteDeploymentFlagsRetainRollback
    toEnum k = AnotherSysrootSimpleWriteDeploymentFlags k

instance P.Ord SysrootSimpleWriteDeploymentFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag SysrootSimpleWriteDeploymentFlags

-- Flags SePolicyRestoreconFlags
{- |
/No description available in the introspection data./
-}
data SePolicyRestoreconFlags =
      SePolicyRestoreconFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | SePolicyRestoreconFlagsAllowNolabel
    {- ^
    /No description available in the introspection data./
    -}
    | SePolicyRestoreconFlagsKeepExisting
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherSePolicyRestoreconFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SePolicyRestoreconFlags where
    fromEnum SePolicyRestoreconFlagsNone = 0
    fromEnum SePolicyRestoreconFlagsAllowNolabel = 1
    fromEnum SePolicyRestoreconFlagsKeepExisting = 2
    fromEnum (AnotherSePolicyRestoreconFlags k) = k

    toEnum 0 = SePolicyRestoreconFlagsNone
    toEnum 1 = SePolicyRestoreconFlagsAllowNolabel
    toEnum 2 = SePolicyRestoreconFlagsKeepExisting
    toEnum k = AnotherSePolicyRestoreconFlags k

instance P.Ord SePolicyRestoreconFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag SePolicyRestoreconFlags

-- Flags RepoResolveRevExtFlags
{- |
/No description available in the introspection data./
-}
data RepoResolveRevExtFlags =
      RepoResolveRevExtFlagsNone
    {- ^
    No flags.
    -}
    | RepoResolveRevExtFlagsLocalOnly
    {- ^
    Exclude remote and mirrored refs. Since: 2019.2
    -}
    | AnotherRepoResolveRevExtFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoResolveRevExtFlags where
    fromEnum RepoResolveRevExtFlagsNone = 0
    fromEnum RepoResolveRevExtFlagsLocalOnly = 1
    fromEnum (AnotherRepoResolveRevExtFlags k) = k

    toEnum 0 = RepoResolveRevExtFlagsNone
    toEnum 1 = RepoResolveRevExtFlagsLocalOnly
    toEnum k = AnotherRepoResolveRevExtFlags k

instance P.Ord RepoResolveRevExtFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoResolveRevExtFlags

-- Flags RepoPullFlags
{- |
/No description available in the introspection data./
-}
data RepoPullFlags =
      RepoPullFlagsNone
    {- ^
    No special options for pull
    -}
    | RepoPullFlagsMirror
    {- ^
    Write out refs suitable for mirrors and fetch all refs if none requested
    -}
    | RepoPullFlagsCommitOnly
    {- ^
    Fetch only the commit metadata
    -}
    | RepoPullFlagsUntrusted
    {- ^
    Do verify checksums of local (filesystem-accessible) repositories (defaults on for HTTP)
    -}
    | RepoPullFlagsBareuseronlyFiles
    {- ^
    Since 2017.7.  Reject writes of content objects with modes outside of 0775.
    -}
    | RepoPullFlagsTrustedHttp
    {- ^
    Don\'t verify checksums of objects HTTP repositories (Since: 2017.12)
    -}
    | AnotherRepoPullFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoPullFlags where
    fromEnum RepoPullFlagsNone = 0
    fromEnum RepoPullFlagsMirror = 1
    fromEnum RepoPullFlagsCommitOnly = 2
    fromEnum RepoPullFlagsUntrusted = 4
    fromEnum RepoPullFlagsBareuseronlyFiles = 8
    fromEnum RepoPullFlagsTrustedHttp = 16
    fromEnum (AnotherRepoPullFlags k) = k

    toEnum 0 = RepoPullFlagsNone
    toEnum 1 = RepoPullFlagsMirror
    toEnum 2 = RepoPullFlagsCommitOnly
    toEnum 4 = RepoPullFlagsUntrusted
    toEnum 8 = RepoPullFlagsBareuseronlyFiles
    toEnum 16 = RepoPullFlagsTrustedHttp
    toEnum k = AnotherRepoPullFlags k

instance P.Ord RepoPullFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoPullFlags

-- Flags RepoListRefsExtFlags
{- |
/No description available in the introspection data./
-}
data RepoListRefsExtFlags =
      RepoListRefsExtFlagsNone
    {- ^
    No flags.
    -}
    | RepoListRefsExtFlagsAliases
    {- ^
    Only list aliases.  Since: 2017.10
    -}
    | RepoListRefsExtFlagsExcludeRemotes
    {- ^
    Exclude remote refs.  Since: 2017.11
    -}
    | RepoListRefsExtFlagsExcludeMirrors
    {- ^
    Exclude mirrored refs.  Since: 2019.2
    -}
    | AnotherRepoListRefsExtFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoListRefsExtFlags where
    fromEnum RepoListRefsExtFlagsNone = 0
    fromEnum RepoListRefsExtFlagsAliases = 1
    fromEnum RepoListRefsExtFlagsExcludeRemotes = 2
    fromEnum RepoListRefsExtFlagsExcludeMirrors = 4
    fromEnum (AnotherRepoListRefsExtFlags k) = k

    toEnum 0 = RepoListRefsExtFlagsNone
    toEnum 1 = RepoListRefsExtFlagsAliases
    toEnum 2 = RepoListRefsExtFlagsExcludeRemotes
    toEnum 4 = RepoListRefsExtFlagsExcludeMirrors
    toEnum k = AnotherRepoListRefsExtFlags k

instance P.Ord RepoListRefsExtFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoListRefsExtFlags

-- Flags RepoListObjectsFlags
{- |
/No description available in the introspection data./
-}
data RepoListObjectsFlags =
      RepoListObjectsFlagsLoose
    {- ^
    List only loose (plain file) objects
    -}
    | RepoListObjectsFlagsPacked
    {- ^
    List only packed (compacted into blobs) objects
    -}
    | RepoListObjectsFlagsAll
    {- ^
    List all objects
    -}
    | RepoListObjectsFlagsNoParents
    {- ^
    Only list objects in this repo, not parents
    -}
    | AnotherRepoListObjectsFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoListObjectsFlags where
    fromEnum RepoListObjectsFlagsLoose = 1
    fromEnum RepoListObjectsFlagsPacked = 2
    fromEnum RepoListObjectsFlagsAll = 4
    fromEnum RepoListObjectsFlagsNoParents = 8
    fromEnum (AnotherRepoListObjectsFlags k) = k

    toEnum 1 = RepoListObjectsFlagsLoose
    toEnum 2 = RepoListObjectsFlagsPacked
    toEnum 4 = RepoListObjectsFlagsAll
    toEnum 8 = RepoListObjectsFlagsNoParents
    toEnum k = AnotherRepoListObjectsFlags k

instance P.Ord RepoListObjectsFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoListObjectsFlags

-- Flags RepoCommitTraverseFlags
{- |
/No description available in the introspection data./
-}
data RepoCommitTraverseFlags =
      RepoCommitTraverseFlagsRepoCommitTraverseFlagNone
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherRepoCommitTraverseFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoCommitTraverseFlags where
    fromEnum RepoCommitTraverseFlagsRepoCommitTraverseFlagNone = 1
    fromEnum (AnotherRepoCommitTraverseFlags k) = k

    toEnum 1 = RepoCommitTraverseFlagsRepoCommitTraverseFlagNone
    toEnum k = AnotherRepoCommitTraverseFlags k

instance P.Ord RepoCommitTraverseFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoCommitTraverseFlags

-- Flags RepoCommitState
{- |
Flags representing the state of a commit in the local repository, as returned
by 'GI.OSTree.Objects.Repo.repoLoadCommit'.

/Since: 2015.7/
-}
data RepoCommitState =
      RepoCommitStateNormal
    {- ^
    Commit is complete. This is the default.
       (Since: 2017.14.)
    -}
    | RepoCommitStatePartial
    {- ^
    One or more objects are missing from the
       local copy of the commit, but metadata is present. (Since: 2015.7.)
    -}
    | AnotherRepoCommitState Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoCommitState where
    fromEnum RepoCommitStateNormal = 0
    fromEnum RepoCommitStatePartial = 1
    fromEnum (AnotherRepoCommitState k) = k

    toEnum 0 = RepoCommitStateNormal
    toEnum 1 = RepoCommitStatePartial
    toEnum k = AnotherRepoCommitState k

instance P.Ord RepoCommitState where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoCommitState

-- Flags RepoCommitModifierFlags
{- |
/No description available in the introspection data./
-}
data RepoCommitModifierFlags =
      RepoCommitModifierFlagsNone
    {- ^
    No special flags
    -}
    | RepoCommitModifierFlagsSkipXattrs
    {- ^
    Do not process extended attributes
    -}
    | RepoCommitModifierFlagsGenerateSizes
    {- ^
    Generate size information.
    -}
    | RepoCommitModifierFlagsCanonicalPermissions
    {- ^
    Canonicalize permissions for bare-user-only mode.
    -}
    | RepoCommitModifierFlagsErrorOnUnlabeled
    {- ^
    Emit an error if configured SELinux policy does not provide a label
    -}
    | RepoCommitModifierFlagsConsume
    {- ^
    Delete added files\/directories after commit; Since: 2017.13
    -}
    | RepoCommitModifierFlagsDevinoCanonical
    {- ^
    If a devino cache hit is found, skip modifier filters (non-directories only); Since: 2017.14
    -}
    | AnotherRepoCommitModifierFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum RepoCommitModifierFlags where
    fromEnum RepoCommitModifierFlagsNone = 0
    fromEnum RepoCommitModifierFlagsSkipXattrs = 1
    fromEnum RepoCommitModifierFlagsGenerateSizes = 2
    fromEnum RepoCommitModifierFlagsCanonicalPermissions = 4
    fromEnum RepoCommitModifierFlagsErrorOnUnlabeled = 8
    fromEnum RepoCommitModifierFlagsConsume = 16
    fromEnum RepoCommitModifierFlagsDevinoCanonical = 32
    fromEnum (AnotherRepoCommitModifierFlags k) = k

    toEnum 0 = RepoCommitModifierFlagsNone
    toEnum 1 = RepoCommitModifierFlagsSkipXattrs
    toEnum 2 = RepoCommitModifierFlagsGenerateSizes
    toEnum 4 = RepoCommitModifierFlagsCanonicalPermissions
    toEnum 8 = RepoCommitModifierFlagsErrorOnUnlabeled
    toEnum 16 = RepoCommitModifierFlagsConsume
    toEnum 32 = RepoCommitModifierFlagsDevinoCanonical
    toEnum k = AnotherRepoCommitModifierFlags k

instance P.Ord RepoCommitModifierFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag RepoCommitModifierFlags

-- Flags DiffFlags
{- |
/No description available in the introspection data./
-}
data DiffFlags =
      DiffFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | DiffFlagsIgnoreXattrs
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherDiffFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum DiffFlags where
    fromEnum DiffFlagsNone = 0
    fromEnum DiffFlagsIgnoreXattrs = 1
    fromEnum (AnotherDiffFlags k) = k

    toEnum 0 = DiffFlagsNone
    toEnum 1 = DiffFlagsIgnoreXattrs
    toEnum k = AnotherDiffFlags k

instance P.Ord DiffFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag DiffFlags

-- Flags ChecksumFlags
{- |
/No description available in the introspection data./

/Since: 2017.13/
-}
data ChecksumFlags =
      ChecksumFlagsNone
    {- ^
    /No description available in the introspection data./
    -}
    | ChecksumFlagsIgnoreXattrs
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherChecksumFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum ChecksumFlags where
    fromEnum ChecksumFlagsNone = 0
    fromEnum ChecksumFlagsIgnoreXattrs = 1
    fromEnum (AnotherChecksumFlags k) = k

    toEnum 0 = ChecksumFlagsNone
    toEnum 1 = ChecksumFlagsIgnoreXattrs
    toEnum k = AnotherChecksumFlags k

instance P.Ord ChecksumFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

instance IsGFlag ChecksumFlags