diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2017 wayofthepie
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Data.ProtoLens.Setup
+main = defaultMainGeneratingProtos "src"
diff --git a/criu-rpc-types.cabal b/criu-rpc-types.cabal
new file mode 100644
--- /dev/null
+++ b/criu-rpc-types.cabal
@@ -0,0 +1,39 @@
+-- Initial respawn.cabal generated by cabal init.  For further
+-- documentation, see http://haskell.org/cabal/users-guide/
+
+name:                criu-rpc-types
+version:             0.0.0.1
+synopsis:            Criu RPC protocol buffer types.
+description:
+  Types and lenses for the CRIU RPC API generated using proto-lens.
+license:             MIT
+license-file:        LICENSE
+category:            criu
+author:              wayofthepie
+maintainer:          wayofthepie@gmail.com
+build-type:          Custom
+extra-source-files:  src/criu/rpc.proto
+cabal-version:       >=1.23
+homepage:            https://github.com/wayofthepie/haskell-criu-rpc-types
+bug-reports:         https://github.com/wayofthepie/haskell-criu-rpc-types/issues
+source-repository head
+  type:              git
+  location:          https://github.com/wayofthepie/haskell-criu-rpc-types
+
+custom-setup
+  setup-depends:
+    base >=4.9 && <5
+    , proto-lens-protoc >= 0.1.0.4 && < 0.1.1.0
+
+library
+  exposed-modules:
+    Proto.Criu.Rpc
+
+  -- other-modules:
+  -- other-extensions:
+  build-depends:
+    base >=4.9 && <5
+    , proto-lens >= 0.1.0.4 && < 0.1.1.0
+    , proto-lens-protoc >= 0.1.0.4 && < 0.1.1.0
+  hs-source-dirs:      src
+  default-language:    Haskell2010
diff --git a/dist/build/autogen/Proto/Criu/Rpc.hs b/dist/build/autogen/Proto/Criu/Rpc.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Proto/Criu/Rpc.hs
@@ -0,0 +1,3437 @@
+{- This file was auto-generated from criu/rpc.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances,
+  PatternSynonyms #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.Criu.Rpc where
+import qualified Prelude
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.ProtoLens.Reexport.Data.ProtoLens
+       as Data.ProtoLens
+import qualified
+       Data.ProtoLens.Reexport.Data.ProtoLens.Message.Enum
+       as Data.ProtoLens.Message.Enum
+import qualified Data.ProtoLens.Reexport.Lens.Family2
+       as Lens.Family2
+import qualified Data.ProtoLens.Reexport.Lens.Family2.Unchecked
+       as Lens.Family2.Unchecked
+import qualified Data.ProtoLens.Reexport.Data.Default.Class
+       as Data.Default.Class
+import qualified Data.ProtoLens.Reexport.Data.Text as Data.Text
+import qualified Data.ProtoLens.Reexport.Data.Map as Data.Map
+import qualified Data.ProtoLens.Reexport.Data.ByteString
+       as Data.ByteString
+
+data Criu_cg_mode = IGNORE
+                  | CG_NONE
+                  | PROPS
+                  | SOFT
+                  | FULL
+                  | STRICT
+                  | DEFAULT
+                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default Criu_cg_mode where
+        def = IGNORE
+
+instance Data.ProtoLens.FieldDefault Criu_cg_mode where
+        fieldDefault = IGNORE
+
+instance Data.ProtoLens.MessageEnum Criu_cg_mode where
+        maybeToEnum 0 = Prelude.Just IGNORE
+        maybeToEnum 1 = Prelude.Just CG_NONE
+        maybeToEnum 2 = Prelude.Just PROPS
+        maybeToEnum 3 = Prelude.Just SOFT
+        maybeToEnum 4 = Prelude.Just FULL
+        maybeToEnum 5 = Prelude.Just STRICT
+        maybeToEnum 6 = Prelude.Just DEFAULT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum IGNORE = "IGNORE"
+        showEnum CG_NONE = "CG_NONE"
+        showEnum PROPS = "PROPS"
+        showEnum SOFT = "SOFT"
+        showEnum FULL = "FULL"
+        showEnum STRICT = "STRICT"
+        showEnum DEFAULT = "DEFAULT"
+        readEnum "IGNORE" = Prelude.Just IGNORE
+        readEnum "CG_NONE" = Prelude.Just CG_NONE
+        readEnum "PROPS" = Prelude.Just PROPS
+        readEnum "SOFT" = Prelude.Just SOFT
+        readEnum "FULL" = Prelude.Just FULL
+        readEnum "STRICT" = Prelude.Just STRICT
+        readEnum "DEFAULT" = Prelude.Just DEFAULT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum Criu_cg_mode where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Criu_cg_mode: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum IGNORE = 0
+        fromEnum CG_NONE = 1
+        fromEnum PROPS = 2
+        fromEnum SOFT = 3
+        fromEnum FULL = 4
+        fromEnum STRICT = 5
+        fromEnum DEFAULT = 6
+        succ DEFAULT
+          = Prelude.error
+              "Ident \"Criu_cg_mode\".Ident \"succ\": bad argument Ident \"DEFAULT\". This value would be out of bounds."
+        succ IGNORE = CG_NONE
+        succ CG_NONE = PROPS
+        succ PROPS = SOFT
+        succ SOFT = FULL
+        succ FULL = STRICT
+        succ STRICT = DEFAULT
+        pred IGNORE
+          = Prelude.error
+              "Ident \"Criu_cg_mode\".Ident \"pred\": bad argument Ident \"IGNORE\". This value would be out of bounds."
+        pred CG_NONE = IGNORE
+        pred PROPS = CG_NONE
+        pred SOFT = PROPS
+        pred FULL = SOFT
+        pred STRICT = FULL
+        pred DEFAULT = STRICT
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded Criu_cg_mode where
+        minBound = IGNORE
+        maxBound = DEFAULT
+
+data Criu_req_type = EMPTY
+                   | DUMP
+                   | RESTORE
+                   | CHECK
+                   | PRE_DUMP
+                   | PAGE_SERVER
+                   | NOTIFY
+                   | CPUINFO_DUMP
+                   | CPUINFO_CHECK
+                   | FEATURE_CHECK
+                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default Criu_req_type where
+        def = EMPTY
+
+instance Data.ProtoLens.FieldDefault Criu_req_type where
+        fieldDefault = EMPTY
+
+instance Data.ProtoLens.MessageEnum Criu_req_type where
+        maybeToEnum 0 = Prelude.Just EMPTY
+        maybeToEnum 1 = Prelude.Just DUMP
+        maybeToEnum 2 = Prelude.Just RESTORE
+        maybeToEnum 3 = Prelude.Just CHECK
+        maybeToEnum 4 = Prelude.Just PRE_DUMP
+        maybeToEnum 5 = Prelude.Just PAGE_SERVER
+        maybeToEnum 6 = Prelude.Just NOTIFY
+        maybeToEnum 7 = Prelude.Just CPUINFO_DUMP
+        maybeToEnum 8 = Prelude.Just CPUINFO_CHECK
+        maybeToEnum 9 = Prelude.Just FEATURE_CHECK
+        maybeToEnum _ = Prelude.Nothing
+        showEnum EMPTY = "EMPTY"
+        showEnum DUMP = "DUMP"
+        showEnum RESTORE = "RESTORE"
+        showEnum CHECK = "CHECK"
+        showEnum PRE_DUMP = "PRE_DUMP"
+        showEnum PAGE_SERVER = "PAGE_SERVER"
+        showEnum NOTIFY = "NOTIFY"
+        showEnum CPUINFO_DUMP = "CPUINFO_DUMP"
+        showEnum CPUINFO_CHECK = "CPUINFO_CHECK"
+        showEnum FEATURE_CHECK = "FEATURE_CHECK"
+        readEnum "EMPTY" = Prelude.Just EMPTY
+        readEnum "DUMP" = Prelude.Just DUMP
+        readEnum "RESTORE" = Prelude.Just RESTORE
+        readEnum "CHECK" = Prelude.Just CHECK
+        readEnum "PRE_DUMP" = Prelude.Just PRE_DUMP
+        readEnum "PAGE_SERVER" = Prelude.Just PAGE_SERVER
+        readEnum "NOTIFY" = Prelude.Just NOTIFY
+        readEnum "CPUINFO_DUMP" = Prelude.Just CPUINFO_DUMP
+        readEnum "CPUINFO_CHECK" = Prelude.Just CPUINFO_CHECK
+        readEnum "FEATURE_CHECK" = Prelude.Just FEATURE_CHECK
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum Criu_req_type where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Criu_req_type: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum EMPTY = 0
+        fromEnum DUMP = 1
+        fromEnum RESTORE = 2
+        fromEnum CHECK = 3
+        fromEnum PRE_DUMP = 4
+        fromEnum PAGE_SERVER = 5
+        fromEnum NOTIFY = 6
+        fromEnum CPUINFO_DUMP = 7
+        fromEnum CPUINFO_CHECK = 8
+        fromEnum FEATURE_CHECK = 9
+        succ FEATURE_CHECK
+          = Prelude.error
+              "Ident \"Criu_req_type\".Ident \"succ\": bad argument Ident \"FEATURE_CHECK\". This value would be out of bounds."
+        succ EMPTY = DUMP
+        succ DUMP = RESTORE
+        succ RESTORE = CHECK
+        succ CHECK = PRE_DUMP
+        succ PRE_DUMP = PAGE_SERVER
+        succ PAGE_SERVER = NOTIFY
+        succ NOTIFY = CPUINFO_DUMP
+        succ CPUINFO_DUMP = CPUINFO_CHECK
+        succ CPUINFO_CHECK = FEATURE_CHECK
+        pred EMPTY
+          = Prelude.error
+              "Ident \"Criu_req_type\".Ident \"pred\": bad argument Ident \"EMPTY\". This value would be out of bounds."
+        pred DUMP = EMPTY
+        pred RESTORE = DUMP
+        pred CHECK = RESTORE
+        pred PRE_DUMP = CHECK
+        pred PAGE_SERVER = PRE_DUMP
+        pred NOTIFY = PAGE_SERVER
+        pred CPUINFO_DUMP = NOTIFY
+        pred CPUINFO_CHECK = CPUINFO_DUMP
+        pred FEATURE_CHECK = CPUINFO_CHECK
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded Criu_req_type where
+        minBound = EMPTY
+        maxBound = FEATURE_CHECK
+
+data Cgroup_root = Cgroup_root{_Cgroup_root'ctrl ::
+                               Prelude.Maybe Data.Text.Text,
+                               _Cgroup_root'path :: Data.Text.Text}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "ctrl" Cgroup_root =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "ctrl" Cgroup_root Cgroup_root
+         where
+        field _
+          = (Prelude..) maybe'ctrl
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'ctrl" Cgroup_root =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'ctrl" Cgroup_root
+         Cgroup_root where
+        field _
+          = Lens.Family2.Unchecked.lens _Cgroup_root'ctrl
+              (\ x__ y__ -> x__{_Cgroup_root'ctrl = y__})
+
+type instance Data.ProtoLens.Field "path" Cgroup_root =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "path" Cgroup_root Cgroup_root
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Cgroup_root'path
+              (\ x__ y__ -> x__{_Cgroup_root'path = y__})
+
+instance Data.Default.Class.Default Cgroup_root where
+        def
+          = Cgroup_root{_Cgroup_root'ctrl = Prelude.Nothing,
+                        _Cgroup_root'path = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Cgroup_root where
+        descriptor
+          = let ctrl__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ctrl"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'ctrl)
+                path__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "path"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required path)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, ctrl__field_descriptor),
+                    (Data.ProtoLens.Tag 2, path__field_descriptor)])
+                (Data.Map.fromList
+                   [("ctrl", ctrl__field_descriptor),
+                    ("path", path__field_descriptor)])
+
+data Criu_dump_resp = Criu_dump_resp{_Criu_dump_resp'restored ::
+                                     Prelude.Maybe Prelude.Bool}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "restored" Criu_dump_resp =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "restored" Criu_dump_resp
+         Criu_dump_resp where
+        field _
+          = (Prelude..) maybe'restored
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'restored" Criu_dump_resp
+     = Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'restored" Criu_dump_resp
+         Criu_dump_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_dump_resp'restored
+              (\ x__ y__ -> x__{_Criu_dump_resp'restored = y__})
+
+instance Data.Default.Class.Default Criu_dump_resp where
+        def = Criu_dump_resp{_Criu_dump_resp'restored = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_dump_resp where
+        descriptor
+          = let restored__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "restored"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'restored)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, restored__field_descriptor)])
+                (Data.Map.fromList [("restored", restored__field_descriptor)])
+
+data Criu_features = Criu_features{_Criu_features'memTrack ::
+                                   Prelude.Maybe Prelude.Bool}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "memTrack" Criu_features =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "memTrack" Criu_features
+         Criu_features where
+        field _
+          = (Prelude..) maybe'memTrack
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'memTrack" Criu_features =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'memTrack" Criu_features
+         Criu_features where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_features'memTrack
+              (\ x__ y__ -> x__{_Criu_features'memTrack = y__})
+
+instance Data.Default.Class.Default Criu_features where
+        def = Criu_features{_Criu_features'memTrack = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_features where
+        descriptor
+          = let memTrack__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "mem_track"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'memTrack)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, memTrack__field_descriptor)])
+                (Data.Map.fromList [("mem_track", memTrack__field_descriptor)])
+
+data Criu_notify = Criu_notify{_Criu_notify'script ::
+                               Prelude.Maybe Data.Text.Text,
+                               _Criu_notify'pid :: Prelude.Maybe Data.Int.Int32}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "script" Criu_notify =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "script" Criu_notify Criu_notify
+         where
+        field _
+          = (Prelude..) maybe'script
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'script" Criu_notify =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'script" Criu_notify
+         Criu_notify where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_notify'script
+              (\ x__ y__ -> x__{_Criu_notify'script = y__})
+
+type instance Data.ProtoLens.Field "pid" Criu_notify =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pid" Criu_notify Criu_notify
+         where
+        field _
+          = (Prelude..) maybe'pid
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'pid" Criu_notify =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'pid" Criu_notify
+         Criu_notify where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_notify'pid
+              (\ x__ y__ -> x__{_Criu_notify'pid = y__})
+
+instance Data.Default.Class.Default Criu_notify where
+        def
+          = Criu_notify{_Criu_notify'script = Prelude.Nothing,
+                        _Criu_notify'pid = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_notify where
+        descriptor
+          = let script__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "script"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'script)
+                pid__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pid"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'pid)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, script__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pid__field_descriptor)])
+                (Data.Map.fromList
+                   [("script", script__field_descriptor),
+                    ("pid", pid__field_descriptor)])
+
+data Criu_opts = Criu_opts{_Criu_opts'imagesDirFd ::
+                           Data.Int.Int32,
+                           _Criu_opts'pid :: Prelude.Maybe Data.Int.Int32,
+                           _Criu_opts'leaveRunning :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'extUnixSk :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'tcpEstablished :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'evasiveDevices :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'shellJob :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'fileLocks :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'logLevel :: Prelude.Maybe Data.Int.Int32,
+                           _Criu_opts'logFile :: Prelude.Maybe Data.Text.Text,
+                           _Criu_opts'ps :: Prelude.Maybe Criu_page_server_info,
+                           _Criu_opts'notifyScripts :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'root :: Prelude.Maybe Data.Text.Text,
+                           _Criu_opts'parentImg :: Prelude.Maybe Data.Text.Text,
+                           _Criu_opts'trackMem :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'autoDedup :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'workDirFd :: Prelude.Maybe Data.Int.Int32,
+                           _Criu_opts'linkRemap :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'veths :: [Criu_veth_pair],
+                           _Criu_opts'cpuCap :: Prelude.Maybe Data.Word.Word32,
+                           _Criu_opts'forceIrmap :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'execCmd :: [Data.Text.Text],
+                           _Criu_opts'extMnt :: [Ext_mount_map],
+                           _Criu_opts'manageCgroups :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'cgRoot :: [Cgroup_root],
+                           _Criu_opts'rstSibling :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'inheritFd :: [Inherit_fd],
+                           _Criu_opts'autoExtMnt :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'extSharing :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'extMasters :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'skipMnt :: [Data.Text.Text],
+                           _Criu_opts'enableFs :: [Data.Text.Text],
+                           _Criu_opts'unixSkIno :: [Unix_sk],
+                           _Criu_opts'manageCgroupsMode :: Prelude.Maybe Criu_cg_mode,
+                           _Criu_opts'ghostLimit :: Prelude.Maybe Data.Word.Word32,
+                           _Criu_opts'irmapScanPaths :: [Data.Text.Text],
+                           _Criu_opts'external :: [Data.Text.Text],
+                           _Criu_opts'emptyNs :: Prelude.Maybe Data.Word.Word32,
+                           _Criu_opts'joinNs :: [Join_namespace],
+                           _Criu_opts'cgroupProps :: Prelude.Maybe Data.Text.Text,
+                           _Criu_opts'cgroupPropsFile :: Prelude.Maybe Data.Text.Text,
+                           _Criu_opts'cgroupDumpController :: [Data.Text.Text],
+                           _Criu_opts'freezeCgroup :: Prelude.Maybe Data.Text.Text,
+                           _Criu_opts'timeout :: Prelude.Maybe Data.Word.Word32,
+                           _Criu_opts'tcpSkipInFlight :: Prelude.Maybe Prelude.Bool,
+                           _Criu_opts'weakSysctls :: Prelude.Maybe Prelude.Bool}
+               deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "imagesDirFd" Criu_opts =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "imagesDirFd" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'imagesDirFd
+              (\ x__ y__ -> x__{_Criu_opts'imagesDirFd = y__})
+
+type instance Data.ProtoLens.Field "pid" Criu_opts = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pid" Criu_opts Criu_opts where
+        field _
+          = (Prelude..) maybe'pid
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'pid" Criu_opts =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'pid" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'pid
+              (\ x__ y__ -> x__{_Criu_opts'pid = y__})
+
+type instance Data.ProtoLens.Field "leaveRunning" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "leaveRunning" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'leaveRunning
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'leaveRunning" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'leaveRunning" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'leaveRunning
+              (\ x__ y__ -> x__{_Criu_opts'leaveRunning = y__})
+
+type instance Data.ProtoLens.Field "extUnixSk" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "extUnixSk" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'extUnixSk
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'extUnixSk" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'extUnixSk" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'extUnixSk
+              (\ x__ y__ -> x__{_Criu_opts'extUnixSk = y__})
+
+type instance Data.ProtoLens.Field "tcpEstablished" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "tcpEstablished" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'tcpEstablished
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'tcpEstablished" Criu_opts
+     = Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'tcpEstablished" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'tcpEstablished
+              (\ x__ y__ -> x__{_Criu_opts'tcpEstablished = y__})
+
+type instance Data.ProtoLens.Field "evasiveDevices" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "evasiveDevices" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'evasiveDevices
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'evasiveDevices" Criu_opts
+     = Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'evasiveDevices" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'evasiveDevices
+              (\ x__ y__ -> x__{_Criu_opts'evasiveDevices = y__})
+
+type instance Data.ProtoLens.Field "shellJob" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "shellJob" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'shellJob
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'shellJob" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'shellJob" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'shellJob
+              (\ x__ y__ -> x__{_Criu_opts'shellJob = y__})
+
+type instance Data.ProtoLens.Field "fileLocks" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "fileLocks" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'fileLocks
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'fileLocks" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'fileLocks" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'fileLocks
+              (\ x__ y__ -> x__{_Criu_opts'fileLocks = y__})
+
+type instance Data.ProtoLens.Field "logLevel" Criu_opts =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "logLevel" Criu_opts Criu_opts
+         where
+        field _ = (Prelude..) maybe'logLevel (Data.ProtoLens.maybeLens 2)
+
+type instance Data.ProtoLens.Field "maybe'logLevel" Criu_opts =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'logLevel" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'logLevel
+              (\ x__ y__ -> x__{_Criu_opts'logLevel = y__})
+
+type instance Data.ProtoLens.Field "logFile" Criu_opts =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "logFile" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'logFile
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'logFile" Criu_opts =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'logFile" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'logFile
+              (\ x__ y__ -> x__{_Criu_opts'logFile = y__})
+
+type instance Data.ProtoLens.Field "ps" Criu_opts =
+     Criu_page_server_info
+
+instance Data.ProtoLens.HasField "ps" Criu_opts Criu_opts where
+        field _
+          = (Prelude..) maybe'ps
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'ps" Criu_opts =
+     Prelude.Maybe Criu_page_server_info
+
+instance Data.ProtoLens.HasField "maybe'ps" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'ps
+              (\ x__ y__ -> x__{_Criu_opts'ps = y__})
+
+type instance Data.ProtoLens.Field "notifyScripts" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "notifyScripts" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'notifyScripts
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'notifyScripts" Criu_opts
+     = Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'notifyScripts" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'notifyScripts
+              (\ x__ y__ -> x__{_Criu_opts'notifyScripts = y__})
+
+type instance Data.ProtoLens.Field "root" Criu_opts =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "root" Criu_opts Criu_opts where
+        field _
+          = (Prelude..) maybe'root
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'root" Criu_opts =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'root" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'root
+              (\ x__ y__ -> x__{_Criu_opts'root = y__})
+
+type instance Data.ProtoLens.Field "parentImg" Criu_opts =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "parentImg" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'parentImg
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'parentImg" Criu_opts =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'parentImg" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'parentImg
+              (\ x__ y__ -> x__{_Criu_opts'parentImg = y__})
+
+type instance Data.ProtoLens.Field "trackMem" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "trackMem" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'trackMem
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'trackMem" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'trackMem" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'trackMem
+              (\ x__ y__ -> x__{_Criu_opts'trackMem = y__})
+
+type instance Data.ProtoLens.Field "autoDedup" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "autoDedup" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'autoDedup
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'autoDedup" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'autoDedup" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'autoDedup
+              (\ x__ y__ -> x__{_Criu_opts'autoDedup = y__})
+
+type instance Data.ProtoLens.Field "workDirFd" Criu_opts =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "workDirFd" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'workDirFd
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'workDirFd" Criu_opts =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'workDirFd" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'workDirFd
+              (\ x__ y__ -> x__{_Criu_opts'workDirFd = y__})
+
+type instance Data.ProtoLens.Field "linkRemap" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "linkRemap" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'linkRemap
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'linkRemap" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'linkRemap" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'linkRemap
+              (\ x__ y__ -> x__{_Criu_opts'linkRemap = y__})
+
+type instance Data.ProtoLens.Field "veths" Criu_opts =
+     [Criu_veth_pair]
+
+instance Data.ProtoLens.HasField "veths" Criu_opts Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'veths
+              (\ x__ y__ -> x__{_Criu_opts'veths = y__})
+
+type instance Data.ProtoLens.Field "cpuCap" Criu_opts =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "cpuCap" Criu_opts Criu_opts where
+        field _
+          = (Prelude..) maybe'cpuCap (Data.ProtoLens.maybeLens 4294967295)
+
+type instance Data.ProtoLens.Field "maybe'cpuCap" Criu_opts =
+     Prelude.Maybe Data.Word.Word32
+
+instance Data.ProtoLens.HasField "maybe'cpuCap" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'cpuCap
+              (\ x__ y__ -> x__{_Criu_opts'cpuCap = y__})
+
+type instance Data.ProtoLens.Field "forceIrmap" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "forceIrmap" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'forceIrmap
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'forceIrmap" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'forceIrmap" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'forceIrmap
+              (\ x__ y__ -> x__{_Criu_opts'forceIrmap = y__})
+
+type instance Data.ProtoLens.Field "execCmd" Criu_opts =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "execCmd" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'execCmd
+              (\ x__ y__ -> x__{_Criu_opts'execCmd = y__})
+
+type instance Data.ProtoLens.Field "extMnt" Criu_opts =
+     [Ext_mount_map]
+
+instance Data.ProtoLens.HasField "extMnt" Criu_opts Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'extMnt
+              (\ x__ y__ -> x__{_Criu_opts'extMnt = y__})
+
+type instance Data.ProtoLens.Field "manageCgroups" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "manageCgroups" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'manageCgroups
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'manageCgroups" Criu_opts
+     = Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'manageCgroups" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'manageCgroups
+              (\ x__ y__ -> x__{_Criu_opts'manageCgroups = y__})
+
+type instance Data.ProtoLens.Field "cgRoot" Criu_opts =
+     [Cgroup_root]
+
+instance Data.ProtoLens.HasField "cgRoot" Criu_opts Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'cgRoot
+              (\ x__ y__ -> x__{_Criu_opts'cgRoot = y__})
+
+type instance Data.ProtoLens.Field "rstSibling" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "rstSibling" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'rstSibling
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'rstSibling" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'rstSibling" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'rstSibling
+              (\ x__ y__ -> x__{_Criu_opts'rstSibling = y__})
+
+type instance Data.ProtoLens.Field "inheritFd" Criu_opts =
+     [Inherit_fd]
+
+instance Data.ProtoLens.HasField "inheritFd" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'inheritFd
+              (\ x__ y__ -> x__{_Criu_opts'inheritFd = y__})
+
+type instance Data.ProtoLens.Field "autoExtMnt" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "autoExtMnt" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'autoExtMnt
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'autoExtMnt" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'autoExtMnt" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'autoExtMnt
+              (\ x__ y__ -> x__{_Criu_opts'autoExtMnt = y__})
+
+type instance Data.ProtoLens.Field "extSharing" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "extSharing" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'extSharing
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'extSharing" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'extSharing" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'extSharing
+              (\ x__ y__ -> x__{_Criu_opts'extSharing = y__})
+
+type instance Data.ProtoLens.Field "extMasters" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "extMasters" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'extMasters
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'extMasters" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'extMasters" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'extMasters
+              (\ x__ y__ -> x__{_Criu_opts'extMasters = y__})
+
+type instance Data.ProtoLens.Field "skipMnt" Criu_opts =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "skipMnt" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'skipMnt
+              (\ x__ y__ -> x__{_Criu_opts'skipMnt = y__})
+
+type instance Data.ProtoLens.Field "enableFs" Criu_opts =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "enableFs" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'enableFs
+              (\ x__ y__ -> x__{_Criu_opts'enableFs = y__})
+
+type instance Data.ProtoLens.Field "unixSkIno" Criu_opts =
+     [Unix_sk]
+
+instance Data.ProtoLens.HasField "unixSkIno" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'unixSkIno
+              (\ x__ y__ -> x__{_Criu_opts'unixSkIno = y__})
+
+type instance Data.ProtoLens.Field "manageCgroupsMode" Criu_opts =
+     Criu_cg_mode
+
+instance Data.ProtoLens.HasField "manageCgroupsMode" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'manageCgroupsMode
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'manageCgroupsMode" Criu_opts =
+     Prelude.Maybe Criu_cg_mode
+
+instance Data.ProtoLens.HasField "maybe'manageCgroupsMode"
+         Criu_opts Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'manageCgroupsMode
+              (\ x__ y__ -> x__{_Criu_opts'manageCgroupsMode = y__})
+
+type instance Data.ProtoLens.Field "ghostLimit" Criu_opts =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "ghostLimit" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'ghostLimit (Data.ProtoLens.maybeLens 1048576)
+
+type instance Data.ProtoLens.Field "maybe'ghostLimit" Criu_opts =
+     Prelude.Maybe Data.Word.Word32
+
+instance Data.ProtoLens.HasField "maybe'ghostLimit" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'ghostLimit
+              (\ x__ y__ -> x__{_Criu_opts'ghostLimit = y__})
+
+type instance Data.ProtoLens.Field "irmapScanPaths" Criu_opts =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "irmapScanPaths" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'irmapScanPaths
+              (\ x__ y__ -> x__{_Criu_opts'irmapScanPaths = y__})
+
+type instance Data.ProtoLens.Field "external" Criu_opts =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "external" Criu_opts Criu_opts
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'external
+              (\ x__ y__ -> x__{_Criu_opts'external = y__})
+
+type instance Data.ProtoLens.Field "emptyNs" Criu_opts =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "emptyNs" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'emptyNs
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'emptyNs" Criu_opts =
+     Prelude.Maybe Data.Word.Word32
+
+instance Data.ProtoLens.HasField "maybe'emptyNs" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'emptyNs
+              (\ x__ y__ -> x__{_Criu_opts'emptyNs = y__})
+
+type instance Data.ProtoLens.Field "joinNs" Criu_opts =
+     [Join_namespace]
+
+instance Data.ProtoLens.HasField "joinNs" Criu_opts Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'joinNs
+              (\ x__ y__ -> x__{_Criu_opts'joinNs = y__})
+
+type instance Data.ProtoLens.Field "cgroupProps" Criu_opts =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "cgroupProps" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'cgroupProps
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'cgroupProps" Criu_opts =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'cgroupProps" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'cgroupProps
+              (\ x__ y__ -> x__{_Criu_opts'cgroupProps = y__})
+
+type instance Data.ProtoLens.Field "cgroupPropsFile" Criu_opts =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "cgroupPropsFile" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'cgroupPropsFile
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance
+     Data.ProtoLens.Field "maybe'cgroupPropsFile" Criu_opts =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'cgroupPropsFile" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'cgroupPropsFile
+              (\ x__ y__ -> x__{_Criu_opts'cgroupPropsFile = y__})
+
+type instance Data.ProtoLens.Field "cgroupDumpController" Criu_opts
+     = [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "cgroupDumpController" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'cgroupDumpController
+              (\ x__ y__ -> x__{_Criu_opts'cgroupDumpController = y__})
+
+type instance Data.ProtoLens.Field "freezeCgroup" Criu_opts =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "freezeCgroup" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'freezeCgroup
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'freezeCgroup" Criu_opts =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'freezeCgroup" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'freezeCgroup
+              (\ x__ y__ -> x__{_Criu_opts'freezeCgroup = y__})
+
+type instance Data.ProtoLens.Field "timeout" Criu_opts =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "timeout" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'timeout
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'timeout" Criu_opts =
+     Prelude.Maybe Data.Word.Word32
+
+instance Data.ProtoLens.HasField "maybe'timeout" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'timeout
+              (\ x__ y__ -> x__{_Criu_opts'timeout = y__})
+
+type instance Data.ProtoLens.Field "tcpSkipInFlight" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "tcpSkipInFlight" Criu_opts
+         Criu_opts where
+        field _
+          = (Prelude..) maybe'tcpSkipInFlight
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance
+     Data.ProtoLens.Field "maybe'tcpSkipInFlight" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'tcpSkipInFlight" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'tcpSkipInFlight
+              (\ x__ y__ -> x__{_Criu_opts'tcpSkipInFlight = y__})
+
+type instance Data.ProtoLens.Field "weakSysctls" Criu_opts =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "weakSysctls" Criu_opts Criu_opts
+         where
+        field _
+          = (Prelude..) maybe'weakSysctls
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'weakSysctls" Criu_opts =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'weakSysctls" Criu_opts
+         Criu_opts where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_opts'weakSysctls
+              (\ x__ y__ -> x__{_Criu_opts'weakSysctls = y__})
+
+instance Data.Default.Class.Default Criu_opts where
+        def
+          = Criu_opts{_Criu_opts'imagesDirFd = Data.ProtoLens.fieldDefault,
+                      _Criu_opts'pid = Prelude.Nothing,
+                      _Criu_opts'leaveRunning = Prelude.Nothing,
+                      _Criu_opts'extUnixSk = Prelude.Nothing,
+                      _Criu_opts'tcpEstablished = Prelude.Nothing,
+                      _Criu_opts'evasiveDevices = Prelude.Nothing,
+                      _Criu_opts'shellJob = Prelude.Nothing,
+                      _Criu_opts'fileLocks = Prelude.Nothing,
+                      _Criu_opts'logLevel = Prelude.Nothing,
+                      _Criu_opts'logFile = Prelude.Nothing,
+                      _Criu_opts'ps = Prelude.Nothing,
+                      _Criu_opts'notifyScripts = Prelude.Nothing,
+                      _Criu_opts'root = Prelude.Nothing,
+                      _Criu_opts'parentImg = Prelude.Nothing,
+                      _Criu_opts'trackMem = Prelude.Nothing,
+                      _Criu_opts'autoDedup = Prelude.Nothing,
+                      _Criu_opts'workDirFd = Prelude.Nothing,
+                      _Criu_opts'linkRemap = Prelude.Nothing, _Criu_opts'veths = [],
+                      _Criu_opts'cpuCap = Prelude.Nothing,
+                      _Criu_opts'forceIrmap = Prelude.Nothing, _Criu_opts'execCmd = [],
+                      _Criu_opts'extMnt = [], _Criu_opts'manageCgroups = Prelude.Nothing,
+                      _Criu_opts'cgRoot = [], _Criu_opts'rstSibling = Prelude.Nothing,
+                      _Criu_opts'inheritFd = [], _Criu_opts'autoExtMnt = Prelude.Nothing,
+                      _Criu_opts'extSharing = Prelude.Nothing,
+                      _Criu_opts'extMasters = Prelude.Nothing, _Criu_opts'skipMnt = [],
+                      _Criu_opts'enableFs = [], _Criu_opts'unixSkIno = [],
+                      _Criu_opts'manageCgroupsMode = Prelude.Nothing,
+                      _Criu_opts'ghostLimit = Prelude.Nothing,
+                      _Criu_opts'irmapScanPaths = [], _Criu_opts'external = [],
+                      _Criu_opts'emptyNs = Prelude.Nothing, _Criu_opts'joinNs = [],
+                      _Criu_opts'cgroupProps = Prelude.Nothing,
+                      _Criu_opts'cgroupPropsFile = Prelude.Nothing,
+                      _Criu_opts'cgroupDumpController = [],
+                      _Criu_opts'freezeCgroup = Prelude.Nothing,
+                      _Criu_opts'timeout = Prelude.Nothing,
+                      _Criu_opts'tcpSkipInFlight = Prelude.Nothing,
+                      _Criu_opts'weakSysctls = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_opts where
+        descriptor
+          = let imagesDirFd__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "images_dir_fd"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required imagesDirFd)
+                pid__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pid"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'pid)
+                leaveRunning__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "leave_running"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'leaveRunning)
+                extUnixSk__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ext_unix_sk"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'extUnixSk)
+                tcpEstablished__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "tcp_established"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'tcpEstablished)
+                evasiveDevices__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evasive_devices"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'evasiveDevices)
+                shellJob__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "shell_job"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'shellJob)
+                fileLocks__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "file_locks"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'fileLocks)
+                logLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "log_level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'logLevel)
+                logFile__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "log_file"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'logFile)
+                ps__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ps"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_page_server_info)
+                      (Data.ProtoLens.OptionalField maybe'ps)
+                notifyScripts__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "notify_scripts"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'notifyScripts)
+                root__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "root"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'root)
+                parentImg__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "parent_img"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'parentImg)
+                trackMem__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "track_mem"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'trackMem)
+                autoDedup__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "auto_dedup"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'autoDedup)
+                workDirFd__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "work_dir_fd"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'workDirFd)
+                linkRemap__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "link_remap"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'linkRemap)
+                veths__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "veths"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_veth_pair)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked veths)
+                cpuCap__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cpu_cap"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.OptionalField maybe'cpuCap)
+                forceIrmap__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "force_irmap"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'forceIrmap)
+                execCmd__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "exec_cmd"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked execCmd)
+                extMnt__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ext_mnt"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Ext_mount_map)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked extMnt)
+                manageCgroups__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "manage_cgroups"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'manageCgroups)
+                cgRoot__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cg_root"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Cgroup_root)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked cgRoot)
+                rstSibling__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "rst_sibling"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'rstSibling)
+                inheritFd__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inherit_fd"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Inherit_fd)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked inheritFd)
+                autoExtMnt__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "auto_ext_mnt"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'autoExtMnt)
+                extSharing__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ext_sharing"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'extSharing)
+                extMasters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ext_masters"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'extMasters)
+                skipMnt__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "skip_mnt"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked skipMnt)
+                enableFs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "enable_fs"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked enableFs)
+                unixSkIno__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unix_sk_ino"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Unix_sk)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked unixSkIno)
+                manageCgroupsMode__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "manage_cgroups_mode"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_cg_mode)
+                      (Data.ProtoLens.OptionalField maybe'manageCgroupsMode)
+                ghostLimit__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ghost_limit"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.OptionalField maybe'ghostLimit)
+                irmapScanPaths__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "irmap_scan_paths"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         irmapScanPaths)
+                external__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "external"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked external)
+                emptyNs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "empty_ns"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.OptionalField maybe'emptyNs)
+                joinNs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "join_ns"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Join_namespace)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked joinNs)
+                cgroupProps__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cgroup_props"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'cgroupProps)
+                cgroupPropsFile__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cgroup_props_file"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'cgroupPropsFile)
+                cgroupDumpController__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cgroup_dump_controller"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         cgroupDumpController)
+                freezeCgroup__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "freeze_cgroup"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'freezeCgroup)
+                timeout__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "timeout"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.OptionalField maybe'timeout)
+                tcpSkipInFlight__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "tcp_skip_in_flight"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'tcpSkipInFlight)
+                weakSysctls__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "weak_sysctls"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'weakSysctls)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, imagesDirFd__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pid__field_descriptor),
+                    (Data.ProtoLens.Tag 3, leaveRunning__field_descriptor),
+                    (Data.ProtoLens.Tag 4, extUnixSk__field_descriptor),
+                    (Data.ProtoLens.Tag 5, tcpEstablished__field_descriptor),
+                    (Data.ProtoLens.Tag 6, evasiveDevices__field_descriptor),
+                    (Data.ProtoLens.Tag 7, shellJob__field_descriptor),
+                    (Data.ProtoLens.Tag 8, fileLocks__field_descriptor),
+                    (Data.ProtoLens.Tag 9, logLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 10, logFile__field_descriptor),
+                    (Data.ProtoLens.Tag 11, ps__field_descriptor),
+                    (Data.ProtoLens.Tag 12, notifyScripts__field_descriptor),
+                    (Data.ProtoLens.Tag 13, root__field_descriptor),
+                    (Data.ProtoLens.Tag 14, parentImg__field_descriptor),
+                    (Data.ProtoLens.Tag 15, trackMem__field_descriptor),
+                    (Data.ProtoLens.Tag 16, autoDedup__field_descriptor),
+                    (Data.ProtoLens.Tag 17, workDirFd__field_descriptor),
+                    (Data.ProtoLens.Tag 18, linkRemap__field_descriptor),
+                    (Data.ProtoLens.Tag 19, veths__field_descriptor),
+                    (Data.ProtoLens.Tag 20, cpuCap__field_descriptor),
+                    (Data.ProtoLens.Tag 21, forceIrmap__field_descriptor),
+                    (Data.ProtoLens.Tag 22, execCmd__field_descriptor),
+                    (Data.ProtoLens.Tag 23, extMnt__field_descriptor),
+                    (Data.ProtoLens.Tag 24, manageCgroups__field_descriptor),
+                    (Data.ProtoLens.Tag 25, cgRoot__field_descriptor),
+                    (Data.ProtoLens.Tag 26, rstSibling__field_descriptor),
+                    (Data.ProtoLens.Tag 27, inheritFd__field_descriptor),
+                    (Data.ProtoLens.Tag 28, autoExtMnt__field_descriptor),
+                    (Data.ProtoLens.Tag 29, extSharing__field_descriptor),
+                    (Data.ProtoLens.Tag 30, extMasters__field_descriptor),
+                    (Data.ProtoLens.Tag 31, skipMnt__field_descriptor),
+                    (Data.ProtoLens.Tag 32, enableFs__field_descriptor),
+                    (Data.ProtoLens.Tag 33, unixSkIno__field_descriptor),
+                    (Data.ProtoLens.Tag 34, manageCgroupsMode__field_descriptor),
+                    (Data.ProtoLens.Tag 35, ghostLimit__field_descriptor),
+                    (Data.ProtoLens.Tag 36, irmapScanPaths__field_descriptor),
+                    (Data.ProtoLens.Tag 37, external__field_descriptor),
+                    (Data.ProtoLens.Tag 38, emptyNs__field_descriptor),
+                    (Data.ProtoLens.Tag 39, joinNs__field_descriptor),
+                    (Data.ProtoLens.Tag 41, cgroupProps__field_descriptor),
+                    (Data.ProtoLens.Tag 42, cgroupPropsFile__field_descriptor),
+                    (Data.ProtoLens.Tag 43, cgroupDumpController__field_descriptor),
+                    (Data.ProtoLens.Tag 44, freezeCgroup__field_descriptor),
+                    (Data.ProtoLens.Tag 45, timeout__field_descriptor),
+                    (Data.ProtoLens.Tag 46, tcpSkipInFlight__field_descriptor),
+                    (Data.ProtoLens.Tag 47, weakSysctls__field_descriptor)])
+                (Data.Map.fromList
+                   [("images_dir_fd", imagesDirFd__field_descriptor),
+                    ("pid", pid__field_descriptor),
+                    ("leave_running", leaveRunning__field_descriptor),
+                    ("ext_unix_sk", extUnixSk__field_descriptor),
+                    ("tcp_established", tcpEstablished__field_descriptor),
+                    ("evasive_devices", evasiveDevices__field_descriptor),
+                    ("shell_job", shellJob__field_descriptor),
+                    ("file_locks", fileLocks__field_descriptor),
+                    ("log_level", logLevel__field_descriptor),
+                    ("log_file", logFile__field_descriptor),
+                    ("ps", ps__field_descriptor),
+                    ("notify_scripts", notifyScripts__field_descriptor),
+                    ("root", root__field_descriptor),
+                    ("parent_img", parentImg__field_descriptor),
+                    ("track_mem", trackMem__field_descriptor),
+                    ("auto_dedup", autoDedup__field_descriptor),
+                    ("work_dir_fd", workDirFd__field_descriptor),
+                    ("link_remap", linkRemap__field_descriptor),
+                    ("veths", veths__field_descriptor),
+                    ("cpu_cap", cpuCap__field_descriptor),
+                    ("force_irmap", forceIrmap__field_descriptor),
+                    ("exec_cmd", execCmd__field_descriptor),
+                    ("ext_mnt", extMnt__field_descriptor),
+                    ("manage_cgroups", manageCgroups__field_descriptor),
+                    ("cg_root", cgRoot__field_descriptor),
+                    ("rst_sibling", rstSibling__field_descriptor),
+                    ("inherit_fd", inheritFd__field_descriptor),
+                    ("auto_ext_mnt", autoExtMnt__field_descriptor),
+                    ("ext_sharing", extSharing__field_descriptor),
+                    ("ext_masters", extMasters__field_descriptor),
+                    ("skip_mnt", skipMnt__field_descriptor),
+                    ("enable_fs", enableFs__field_descriptor),
+                    ("unix_sk_ino", unixSkIno__field_descriptor),
+                    ("manage_cgroups_mode", manageCgroupsMode__field_descriptor),
+                    ("ghost_limit", ghostLimit__field_descriptor),
+                    ("irmap_scan_paths", irmapScanPaths__field_descriptor),
+                    ("external", external__field_descriptor),
+                    ("empty_ns", emptyNs__field_descriptor),
+                    ("join_ns", joinNs__field_descriptor),
+                    ("cgroup_props", cgroupProps__field_descriptor),
+                    ("cgroup_props_file", cgroupPropsFile__field_descriptor),
+                    ("cgroup_dump_controller", cgroupDumpController__field_descriptor),
+                    ("freeze_cgroup", freezeCgroup__field_descriptor),
+                    ("timeout", timeout__field_descriptor),
+                    ("tcp_skip_in_flight", tcpSkipInFlight__field_descriptor),
+                    ("weak_sysctls", weakSysctls__field_descriptor)])
+
+data Criu_page_server_info = Criu_page_server_info{_Criu_page_server_info'address
+                                                   :: Prelude.Maybe Data.Text.Text,
+                                                   _Criu_page_server_info'port ::
+                                                   Prelude.Maybe Data.Int.Int32,
+                                                   _Criu_page_server_info'pid ::
+                                                   Prelude.Maybe Data.Int.Int32,
+                                                   _Criu_page_server_info'fd ::
+                                                   Prelude.Maybe Data.Int.Int32}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "address" Criu_page_server_info
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "address" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = (Prelude..) maybe'address
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance
+     Data.ProtoLens.Field "maybe'address" Criu_page_server_info =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'address"
+         Criu_page_server_info Criu_page_server_info where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_page_server_info'address
+              (\ x__ y__ -> x__{_Criu_page_server_info'address = y__})
+
+type instance Data.ProtoLens.Field "port" Criu_page_server_info =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "port" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = (Prelude..) maybe'port
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance
+     Data.ProtoLens.Field "maybe'port" Criu_page_server_info =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'port" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_page_server_info'port
+              (\ x__ y__ -> x__{_Criu_page_server_info'port = y__})
+
+type instance Data.ProtoLens.Field "pid" Criu_page_server_info =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pid" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = (Prelude..) maybe'pid
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance
+     Data.ProtoLens.Field "maybe'pid" Criu_page_server_info =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'pid" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_page_server_info'pid
+              (\ x__ y__ -> x__{_Criu_page_server_info'pid = y__})
+
+type instance Data.ProtoLens.Field "fd" Criu_page_server_info =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "fd" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = (Prelude..) maybe'fd
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'fd" Criu_page_server_info
+     = Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'fd" Criu_page_server_info
+         Criu_page_server_info where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_page_server_info'fd
+              (\ x__ y__ -> x__{_Criu_page_server_info'fd = y__})
+
+instance Data.Default.Class.Default Criu_page_server_info where
+        def
+          = Criu_page_server_info{_Criu_page_server_info'address =
+                                    Prelude.Nothing,
+                                  _Criu_page_server_info'port = Prelude.Nothing,
+                                  _Criu_page_server_info'pid = Prelude.Nothing,
+                                  _Criu_page_server_info'fd = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_page_server_info where
+        descriptor
+          = let address__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "address"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'address)
+                port__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "port"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'port)
+                pid__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pid"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'pid)
+                fd__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fd"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'fd)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, address__field_descriptor),
+                    (Data.ProtoLens.Tag 2, port__field_descriptor),
+                    (Data.ProtoLens.Tag 3, pid__field_descriptor),
+                    (Data.ProtoLens.Tag 4, fd__field_descriptor)])
+                (Data.Map.fromList
+                   [("address", address__field_descriptor),
+                    ("port", port__field_descriptor), ("pid", pid__field_descriptor),
+                    ("fd", fd__field_descriptor)])
+
+data Criu_req = Criu_req{_Criu_req'type' :: Criu_req_type,
+                         _Criu_req'opts :: Prelude.Maybe Criu_opts,
+                         _Criu_req'notifySuccess :: Prelude.Maybe Prelude.Bool,
+                         _Criu_req'keepOpen :: Prelude.Maybe Prelude.Bool,
+                         _Criu_req'features :: Prelude.Maybe Criu_features}
+              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "type'" Criu_req = Criu_req_type
+
+instance Data.ProtoLens.HasField "type'" Criu_req Criu_req where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_req'type'
+              (\ x__ y__ -> x__{_Criu_req'type' = y__})
+
+type instance Data.ProtoLens.Field "opts" Criu_req = Criu_opts
+
+instance Data.ProtoLens.HasField "opts" Criu_req Criu_req where
+        field _
+          = (Prelude..) maybe'opts
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'opts" Criu_req =
+     Prelude.Maybe Criu_opts
+
+instance Data.ProtoLens.HasField "maybe'opts" Criu_req Criu_req
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_req'opts
+              (\ x__ y__ -> x__{_Criu_req'opts = y__})
+
+type instance Data.ProtoLens.Field "notifySuccess" Criu_req =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "notifySuccess" Criu_req Criu_req
+         where
+        field _
+          = (Prelude..) maybe'notifySuccess
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'notifySuccess" Criu_req =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'notifySuccess" Criu_req
+         Criu_req where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_req'notifySuccess
+              (\ x__ y__ -> x__{_Criu_req'notifySuccess = y__})
+
+type instance Data.ProtoLens.Field "keepOpen" Criu_req =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "keepOpen" Criu_req Criu_req where
+        field _
+          = (Prelude..) maybe'keepOpen
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'keepOpen" Criu_req =
+     Prelude.Maybe Prelude.Bool
+
+instance Data.ProtoLens.HasField "maybe'keepOpen" Criu_req Criu_req
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_req'keepOpen
+              (\ x__ y__ -> x__{_Criu_req'keepOpen = y__})
+
+type instance Data.ProtoLens.Field "features" Criu_req =
+     Criu_features
+
+instance Data.ProtoLens.HasField "features" Criu_req Criu_req where
+        field _
+          = (Prelude..) maybe'features
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'features" Criu_req =
+     Prelude.Maybe Criu_features
+
+instance Data.ProtoLens.HasField "maybe'features" Criu_req Criu_req
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_req'features
+              (\ x__ y__ -> x__{_Criu_req'features = y__})
+
+instance Data.Default.Class.Default Criu_req where
+        def
+          = Criu_req{_Criu_req'type' = Data.Default.Class.def,
+                     _Criu_req'opts = Prelude.Nothing,
+                     _Criu_req'notifySuccess = Prelude.Nothing,
+                     _Criu_req'keepOpen = Prelude.Nothing,
+                     _Criu_req'features = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_req where
+        descriptor
+          = let type'__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_req_type)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required type')
+                opts__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "opts"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_opts)
+                      (Data.ProtoLens.OptionalField maybe'opts)
+                notifySuccess__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "notify_success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'notifySuccess)
+                keepOpen__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "keep_open"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.OptionalField maybe'keepOpen)
+                features__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "features"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_features)
+                      (Data.ProtoLens.OptionalField maybe'features)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, type'__field_descriptor),
+                    (Data.ProtoLens.Tag 2, opts__field_descriptor),
+                    (Data.ProtoLens.Tag 3, notifySuccess__field_descriptor),
+                    (Data.ProtoLens.Tag 4, keepOpen__field_descriptor),
+                    (Data.ProtoLens.Tag 5, features__field_descriptor)])
+                (Data.Map.fromList
+                   [("type", type'__field_descriptor),
+                    ("opts", opts__field_descriptor),
+                    ("notify_success", notifySuccess__field_descriptor),
+                    ("keep_open", keepOpen__field_descriptor),
+                    ("features", features__field_descriptor)])
+
+data Criu_resp = Criu_resp{_Criu_resp'type' :: Criu_req_type,
+                           _Criu_resp'success :: Prelude.Bool,
+                           _Criu_resp'dump :: Prelude.Maybe Criu_dump_resp,
+                           _Criu_resp'restore :: Prelude.Maybe Criu_restore_resp,
+                           _Criu_resp'notify :: Prelude.Maybe Criu_notify,
+                           _Criu_resp'ps :: Prelude.Maybe Criu_page_server_info,
+                           _Criu_resp'crErrno :: Prelude.Maybe Data.Int.Int32,
+                           _Criu_resp'features :: Prelude.Maybe Criu_features,
+                           _Criu_resp'crErrmsg :: Prelude.Maybe Data.Text.Text}
+               deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "type'" Criu_resp =
+     Criu_req_type
+
+instance Data.ProtoLens.HasField "type'" Criu_resp Criu_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'type'
+              (\ x__ y__ -> x__{_Criu_resp'type' = y__})
+
+type instance Data.ProtoLens.Field "success" Criu_resp =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success" Criu_resp Criu_resp
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'success
+              (\ x__ y__ -> x__{_Criu_resp'success = y__})
+
+type instance Data.ProtoLens.Field "dump" Criu_resp =
+     Criu_dump_resp
+
+instance Data.ProtoLens.HasField "dump" Criu_resp Criu_resp where
+        field _
+          = (Prelude..) maybe'dump
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'dump" Criu_resp =
+     Prelude.Maybe Criu_dump_resp
+
+instance Data.ProtoLens.HasField "maybe'dump" Criu_resp Criu_resp
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'dump
+              (\ x__ y__ -> x__{_Criu_resp'dump = y__})
+
+type instance Data.ProtoLens.Field "restore" Criu_resp =
+     Criu_restore_resp
+
+instance Data.ProtoLens.HasField "restore" Criu_resp Criu_resp
+         where
+        field _
+          = (Prelude..) maybe'restore
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'restore" Criu_resp =
+     Prelude.Maybe Criu_restore_resp
+
+instance Data.ProtoLens.HasField "maybe'restore" Criu_resp
+         Criu_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'restore
+              (\ x__ y__ -> x__{_Criu_resp'restore = y__})
+
+type instance Data.ProtoLens.Field "notify" Criu_resp = Criu_notify
+
+instance Data.ProtoLens.HasField "notify" Criu_resp Criu_resp where
+        field _
+          = (Prelude..) maybe'notify
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'notify" Criu_resp =
+     Prelude.Maybe Criu_notify
+
+instance Data.ProtoLens.HasField "maybe'notify" Criu_resp Criu_resp
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'notify
+              (\ x__ y__ -> x__{_Criu_resp'notify = y__})
+
+type instance Data.ProtoLens.Field "ps" Criu_resp =
+     Criu_page_server_info
+
+instance Data.ProtoLens.HasField "ps" Criu_resp Criu_resp where
+        field _
+          = (Prelude..) maybe'ps
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'ps" Criu_resp =
+     Prelude.Maybe Criu_page_server_info
+
+instance Data.ProtoLens.HasField "maybe'ps" Criu_resp Criu_resp
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'ps
+              (\ x__ y__ -> x__{_Criu_resp'ps = y__})
+
+type instance Data.ProtoLens.Field "crErrno" Criu_resp =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "crErrno" Criu_resp Criu_resp
+         where
+        field _
+          = (Prelude..) maybe'crErrno
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'crErrno" Criu_resp =
+     Prelude.Maybe Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maybe'crErrno" Criu_resp
+         Criu_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'crErrno
+              (\ x__ y__ -> x__{_Criu_resp'crErrno = y__})
+
+type instance Data.ProtoLens.Field "features" Criu_resp =
+     Criu_features
+
+instance Data.ProtoLens.HasField "features" Criu_resp Criu_resp
+         where
+        field _
+          = (Prelude..) maybe'features
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'features" Criu_resp =
+     Prelude.Maybe Criu_features
+
+instance Data.ProtoLens.HasField "maybe'features" Criu_resp
+         Criu_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'features
+              (\ x__ y__ -> x__{_Criu_resp'features = y__})
+
+type instance Data.ProtoLens.Field "crErrmsg" Criu_resp =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "crErrmsg" Criu_resp Criu_resp
+         where
+        field _
+          = (Prelude..) maybe'crErrmsg
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'crErrmsg" Criu_resp =
+     Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'crErrmsg" Criu_resp
+         Criu_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_resp'crErrmsg
+              (\ x__ y__ -> x__{_Criu_resp'crErrmsg = y__})
+
+instance Data.Default.Class.Default Criu_resp where
+        def
+          = Criu_resp{_Criu_resp'type' = Data.Default.Class.def,
+                      _Criu_resp'success = Data.ProtoLens.fieldDefault,
+                      _Criu_resp'dump = Prelude.Nothing,
+                      _Criu_resp'restore = Prelude.Nothing,
+                      _Criu_resp'notify = Prelude.Nothing,
+                      _Criu_resp'ps = Prelude.Nothing,
+                      _Criu_resp'crErrno = Prelude.Nothing,
+                      _Criu_resp'features = Prelude.Nothing,
+                      _Criu_resp'crErrmsg = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Criu_resp where
+        descriptor
+          = let type'__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_req_type)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required type')
+                success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required success)
+                dump__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "dump"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_dump_resp)
+                      (Data.ProtoLens.OptionalField maybe'dump)
+                restore__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "restore"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_restore_resp)
+                      (Data.ProtoLens.OptionalField maybe'restore)
+                notify__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "notify"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_notify)
+                      (Data.ProtoLens.OptionalField maybe'notify)
+                ps__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ps"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_page_server_info)
+                      (Data.ProtoLens.OptionalField maybe'ps)
+                crErrno__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cr_errno"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.OptionalField maybe'crErrno)
+                features__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "features"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Criu_features)
+                      (Data.ProtoLens.OptionalField maybe'features)
+                crErrmsg__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cr_errmsg"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'crErrmsg)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, type'__field_descriptor),
+                    (Data.ProtoLens.Tag 2, success__field_descriptor),
+                    (Data.ProtoLens.Tag 3, dump__field_descriptor),
+                    (Data.ProtoLens.Tag 4, restore__field_descriptor),
+                    (Data.ProtoLens.Tag 5, notify__field_descriptor),
+                    (Data.ProtoLens.Tag 6, ps__field_descriptor),
+                    (Data.ProtoLens.Tag 7, crErrno__field_descriptor),
+                    (Data.ProtoLens.Tag 8, features__field_descriptor),
+                    (Data.ProtoLens.Tag 9, crErrmsg__field_descriptor)])
+                (Data.Map.fromList
+                   [("type", type'__field_descriptor),
+                    ("success", success__field_descriptor),
+                    ("dump", dump__field_descriptor),
+                    ("restore", restore__field_descriptor),
+                    ("notify", notify__field_descriptor), ("ps", ps__field_descriptor),
+                    ("cr_errno", crErrno__field_descriptor),
+                    ("features", features__field_descriptor),
+                    ("cr_errmsg", crErrmsg__field_descriptor)])
+
+data Criu_restore_resp = Criu_restore_resp{_Criu_restore_resp'pid
+                                           :: Data.Int.Int32}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pid" Criu_restore_resp =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pid" Criu_restore_resp
+         Criu_restore_resp where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_restore_resp'pid
+              (\ x__ y__ -> x__{_Criu_restore_resp'pid = y__})
+
+instance Data.Default.Class.Default Criu_restore_resp where
+        def
+          = Criu_restore_resp{_Criu_restore_resp'pid =
+                                Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Criu_restore_resp where
+        descriptor
+          = let pid__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pid"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required pid)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList [(Data.ProtoLens.Tag 1, pid__field_descriptor)])
+                (Data.Map.fromList [("pid", pid__field_descriptor)])
+
+data Criu_veth_pair = Criu_veth_pair{_Criu_veth_pair'ifIn ::
+                                     Data.Text.Text,
+                                     _Criu_veth_pair'ifOut :: Data.Text.Text}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "ifIn" Criu_veth_pair =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "ifIn" Criu_veth_pair
+         Criu_veth_pair where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_veth_pair'ifIn
+              (\ x__ y__ -> x__{_Criu_veth_pair'ifIn = y__})
+
+type instance Data.ProtoLens.Field "ifOut" Criu_veth_pair =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "ifOut" Criu_veth_pair
+         Criu_veth_pair where
+        field _
+          = Lens.Family2.Unchecked.lens _Criu_veth_pair'ifOut
+              (\ x__ y__ -> x__{_Criu_veth_pair'ifOut = y__})
+
+instance Data.Default.Class.Default Criu_veth_pair where
+        def
+          = Criu_veth_pair{_Criu_veth_pair'ifIn =
+                             Data.ProtoLens.fieldDefault,
+                           _Criu_veth_pair'ifOut = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Criu_veth_pair where
+        descriptor
+          = let ifIn__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "if_in"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required ifIn)
+                ifOut__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "if_out"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required ifOut)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, ifIn__field_descriptor),
+                    (Data.ProtoLens.Tag 2, ifOut__field_descriptor)])
+                (Data.Map.fromList
+                   [("if_in", ifIn__field_descriptor),
+                    ("if_out", ifOut__field_descriptor)])
+
+data Ext_mount_map = Ext_mount_map{_Ext_mount_map'key ::
+                                   Data.Text.Text,
+                                   _Ext_mount_map'val :: Data.Text.Text}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "key" Ext_mount_map =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "key" Ext_mount_map Ext_mount_map
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Ext_mount_map'key
+              (\ x__ y__ -> x__{_Ext_mount_map'key = y__})
+
+type instance Data.ProtoLens.Field "val" Ext_mount_map =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "val" Ext_mount_map Ext_mount_map
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Ext_mount_map'val
+              (\ x__ y__ -> x__{_Ext_mount_map'val = y__})
+
+instance Data.Default.Class.Default Ext_mount_map where
+        def
+          = Ext_mount_map{_Ext_mount_map'key = Data.ProtoLens.fieldDefault,
+                          _Ext_mount_map'val = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Ext_mount_map where
+        descriptor
+          = let key__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "key"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required key)
+                val__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "val"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required val)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, key__field_descriptor),
+                    (Data.ProtoLens.Tag 2, val__field_descriptor)])
+                (Data.Map.fromList
+                   [("key", key__field_descriptor), ("val", val__field_descriptor)])
+
+data Inherit_fd = Inherit_fd{_Inherit_fd'key :: Data.Text.Text,
+                             _Inherit_fd'fd :: Data.Int.Int32}
+                deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "key" Inherit_fd =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "key" Inherit_fd Inherit_fd where
+        field _
+          = Lens.Family2.Unchecked.lens _Inherit_fd'key
+              (\ x__ y__ -> x__{_Inherit_fd'key = y__})
+
+type instance Data.ProtoLens.Field "fd" Inherit_fd = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "fd" Inherit_fd Inherit_fd where
+        field _
+          = Lens.Family2.Unchecked.lens _Inherit_fd'fd
+              (\ x__ y__ -> x__{_Inherit_fd'fd = y__})
+
+instance Data.Default.Class.Default Inherit_fd where
+        def
+          = Inherit_fd{_Inherit_fd'key = Data.ProtoLens.fieldDefault,
+                       _Inherit_fd'fd = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Inherit_fd where
+        descriptor
+          = let key__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "key"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required key)
+                fd__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fd"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required fd)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, key__field_descriptor),
+                    (Data.ProtoLens.Tag 2, fd__field_descriptor)])
+                (Data.Map.fromList
+                   [("key", key__field_descriptor), ("fd", fd__field_descriptor)])
+
+data Join_namespace = Join_namespace{_Join_namespace'ns ::
+                                     Data.Text.Text,
+                                     _Join_namespace'nsFile :: Data.Text.Text,
+                                     _Join_namespace'extraOpt :: Prelude.Maybe Data.Text.Text}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "ns" Join_namespace =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "ns" Join_namespace Join_namespace
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Join_namespace'ns
+              (\ x__ y__ -> x__{_Join_namespace'ns = y__})
+
+type instance Data.ProtoLens.Field "nsFile" Join_namespace =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "nsFile" Join_namespace
+         Join_namespace where
+        field _
+          = Lens.Family2.Unchecked.lens _Join_namespace'nsFile
+              (\ x__ y__ -> x__{_Join_namespace'nsFile = y__})
+
+type instance Data.ProtoLens.Field "extraOpt" Join_namespace =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "extraOpt" Join_namespace
+         Join_namespace where
+        field _
+          = (Prelude..) maybe'extraOpt
+              (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)
+
+type instance Data.ProtoLens.Field "maybe'extraOpt" Join_namespace
+     = Prelude.Maybe Data.Text.Text
+
+instance Data.ProtoLens.HasField "maybe'extraOpt" Join_namespace
+         Join_namespace where
+        field _
+          = Lens.Family2.Unchecked.lens _Join_namespace'extraOpt
+              (\ x__ y__ -> x__{_Join_namespace'extraOpt = y__})
+
+instance Data.Default.Class.Default Join_namespace where
+        def
+          = Join_namespace{_Join_namespace'ns = Data.ProtoLens.fieldDefault,
+                           _Join_namespace'nsFile = Data.ProtoLens.fieldDefault,
+                           _Join_namespace'extraOpt = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Join_namespace where
+        descriptor
+          = let ns__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ns"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required ns)
+                nsFile__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ns_file"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required nsFile)
+                extraOpt__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "extra_opt"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.OptionalField maybe'extraOpt)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, ns__field_descriptor),
+                    (Data.ProtoLens.Tag 2, nsFile__field_descriptor),
+                    (Data.ProtoLens.Tag 3, extraOpt__field_descriptor)])
+                (Data.Map.fromList
+                   [("ns", ns__field_descriptor),
+                    ("ns_file", nsFile__field_descriptor),
+                    ("extra_opt", extraOpt__field_descriptor)])
+
+data Unix_sk = Unix_sk{_Unix_sk'inode :: Data.Word.Word32}
+             deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "inode" Unix_sk =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "inode" Unix_sk Unix_sk where
+        field _
+          = Lens.Family2.Unchecked.lens _Unix_sk'inode
+              (\ x__ y__ -> x__{_Unix_sk'inode = y__})
+
+instance Data.Default.Class.Default Unix_sk where
+        def = Unix_sk{_Unix_sk'inode = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Unix_sk where
+        descriptor
+          = let inode__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inode"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Required inode)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, inode__field_descriptor)])
+                (Data.Map.fromList [("inode", inode__field_descriptor)])
+
+address ::
+        forall msg msg' . Data.ProtoLens.HasField "address" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "address" msg)
+            (Data.ProtoLens.Field "address" msg')
+address
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "address")
+
+autoDedup ::
+          forall msg msg' . Data.ProtoLens.HasField "autoDedup" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "autoDedup" msg)
+              (Data.ProtoLens.Field "autoDedup" msg')
+autoDedup
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "autoDedup")
+
+autoExtMnt ::
+           forall msg msg' . Data.ProtoLens.HasField "autoExtMnt" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "autoExtMnt" msg)
+               (Data.ProtoLens.Field "autoExtMnt" msg')
+autoExtMnt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "autoExtMnt")
+
+cgRoot ::
+       forall msg msg' . Data.ProtoLens.HasField "cgRoot" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "cgRoot" msg)
+           (Data.ProtoLens.Field "cgRoot" msg')
+cgRoot
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cgRoot")
+
+cgroupDumpController ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "cgroupDumpController" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "cgroupDumpController" msg)
+                         (Data.ProtoLens.Field "cgroupDumpController" msg')
+cgroupDumpController
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cgroupDumpController")
+
+cgroupProps ::
+            forall msg msg' . Data.ProtoLens.HasField "cgroupProps" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "cgroupProps" msg)
+                (Data.ProtoLens.Field "cgroupProps" msg')
+cgroupProps
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cgroupProps")
+
+cgroupPropsFile ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "cgroupPropsFile" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "cgroupPropsFile" msg)
+                    (Data.ProtoLens.Field "cgroupPropsFile" msg')
+cgroupPropsFile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cgroupPropsFile")
+
+cpuCap ::
+       forall msg msg' . Data.ProtoLens.HasField "cpuCap" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "cpuCap" msg)
+           (Data.ProtoLens.Field "cpuCap" msg')
+cpuCap
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cpuCap")
+
+crErrmsg ::
+         forall msg msg' . Data.ProtoLens.HasField "crErrmsg" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "crErrmsg" msg)
+             (Data.ProtoLens.Field "crErrmsg" msg')
+crErrmsg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "crErrmsg")
+
+crErrno ::
+        forall msg msg' . Data.ProtoLens.HasField "crErrno" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "crErrno" msg)
+            (Data.ProtoLens.Field "crErrno" msg')
+crErrno
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "crErrno")
+
+ctrl ::
+     forall msg msg' . Data.ProtoLens.HasField "ctrl" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ctrl" msg)
+         (Data.ProtoLens.Field "ctrl" msg')
+ctrl
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ctrl")
+
+dump ::
+     forall msg msg' . Data.ProtoLens.HasField "dump" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "dump" msg)
+         (Data.ProtoLens.Field "dump" msg')
+dump
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "dump")
+
+emptyNs ::
+        forall msg msg' . Data.ProtoLens.HasField "emptyNs" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "emptyNs" msg)
+            (Data.ProtoLens.Field "emptyNs" msg')
+emptyNs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "emptyNs")
+
+enableFs ::
+         forall msg msg' . Data.ProtoLens.HasField "enableFs" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "enableFs" msg)
+             (Data.ProtoLens.Field "enableFs" msg')
+enableFs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "enableFs")
+
+evasiveDevices ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "evasiveDevices" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "evasiveDevices" msg)
+                   (Data.ProtoLens.Field "evasiveDevices" msg')
+evasiveDevices
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "evasiveDevices")
+
+execCmd ::
+        forall msg msg' . Data.ProtoLens.HasField "execCmd" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "execCmd" msg)
+            (Data.ProtoLens.Field "execCmd" msg')
+execCmd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "execCmd")
+
+extMasters ::
+           forall msg msg' . Data.ProtoLens.HasField "extMasters" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extMasters" msg)
+               (Data.ProtoLens.Field "extMasters" msg')
+extMasters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extMasters")
+
+extMnt ::
+       forall msg msg' . Data.ProtoLens.HasField "extMnt" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extMnt" msg)
+           (Data.ProtoLens.Field "extMnt" msg')
+extMnt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extMnt")
+
+extSharing ::
+           forall msg msg' . Data.ProtoLens.HasField "extSharing" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extSharing" msg)
+               (Data.ProtoLens.Field "extSharing" msg')
+extSharing
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extSharing")
+
+extUnixSk ::
+          forall msg msg' . Data.ProtoLens.HasField "extUnixSk" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extUnixSk" msg)
+              (Data.ProtoLens.Field "extUnixSk" msg')
+extUnixSk
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extUnixSk")
+
+external ::
+         forall msg msg' . Data.ProtoLens.HasField "external" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "external" msg)
+             (Data.ProtoLens.Field "external" msg')
+external
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "external")
+
+extraOpt ::
+         forall msg msg' . Data.ProtoLens.HasField "extraOpt" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extraOpt" msg)
+             (Data.ProtoLens.Field "extraOpt" msg')
+extraOpt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extraOpt")
+
+fd ::
+   forall msg msg' . Data.ProtoLens.HasField "fd" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fd" msg)
+       (Data.ProtoLens.Field "fd" msg')
+fd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fd")
+
+features ::
+         forall msg msg' . Data.ProtoLens.HasField "features" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "features" msg)
+             (Data.ProtoLens.Field "features" msg')
+features
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "features")
+
+fileLocks ::
+          forall msg msg' . Data.ProtoLens.HasField "fileLocks" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fileLocks" msg)
+              (Data.ProtoLens.Field "fileLocks" msg')
+fileLocks
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fileLocks")
+
+forceIrmap ::
+           forall msg msg' . Data.ProtoLens.HasField "forceIrmap" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "forceIrmap" msg)
+               (Data.ProtoLens.Field "forceIrmap" msg')
+forceIrmap
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "forceIrmap")
+
+freezeCgroup ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "freezeCgroup" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "freezeCgroup" msg)
+                 (Data.ProtoLens.Field "freezeCgroup" msg')
+freezeCgroup
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "freezeCgroup")
+
+ghostLimit ::
+           forall msg msg' . Data.ProtoLens.HasField "ghostLimit" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ghostLimit" msg)
+               (Data.ProtoLens.Field "ghostLimit" msg')
+ghostLimit
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ghostLimit")
+
+ifIn ::
+     forall msg msg' . Data.ProtoLens.HasField "ifIn" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ifIn" msg)
+         (Data.ProtoLens.Field "ifIn" msg')
+ifIn
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ifIn")
+
+ifOut ::
+      forall msg msg' . Data.ProtoLens.HasField "ifOut" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ifOut" msg)
+          (Data.ProtoLens.Field "ifOut" msg')
+ifOut
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ifOut")
+
+imagesDirFd ::
+            forall msg msg' . Data.ProtoLens.HasField "imagesDirFd" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "imagesDirFd" msg)
+                (Data.ProtoLens.Field "imagesDirFd" msg')
+imagesDirFd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "imagesDirFd")
+
+inheritFd ::
+          forall msg msg' . Data.ProtoLens.HasField "inheritFd" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "inheritFd" msg)
+              (Data.ProtoLens.Field "inheritFd" msg')
+inheritFd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "inheritFd")
+
+inode ::
+      forall msg msg' . Data.ProtoLens.HasField "inode" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "inode" msg)
+          (Data.ProtoLens.Field "inode" msg')
+inode
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "inode")
+
+irmapScanPaths ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "irmapScanPaths" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "irmapScanPaths" msg)
+                   (Data.ProtoLens.Field "irmapScanPaths" msg')
+irmapScanPaths
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "irmapScanPaths")
+
+joinNs ::
+       forall msg msg' . Data.ProtoLens.HasField "joinNs" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "joinNs" msg)
+           (Data.ProtoLens.Field "joinNs" msg')
+joinNs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "joinNs")
+
+keepOpen ::
+         forall msg msg' . Data.ProtoLens.HasField "keepOpen" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "keepOpen" msg)
+             (Data.ProtoLens.Field "keepOpen" msg')
+keepOpen
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "keepOpen")
+
+key ::
+    forall msg msg' . Data.ProtoLens.HasField "key" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "key" msg)
+        (Data.ProtoLens.Field "key" msg')
+key
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "key")
+
+leaveRunning ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "leaveRunning" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "leaveRunning" msg)
+                 (Data.ProtoLens.Field "leaveRunning" msg')
+leaveRunning
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "leaveRunning")
+
+linkRemap ::
+          forall msg msg' . Data.ProtoLens.HasField "linkRemap" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "linkRemap" msg)
+              (Data.ProtoLens.Field "linkRemap" msg')
+linkRemap
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "linkRemap")
+
+logFile ::
+        forall msg msg' . Data.ProtoLens.HasField "logFile" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "logFile" msg)
+            (Data.ProtoLens.Field "logFile" msg')
+logFile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "logFile")
+
+logLevel ::
+         forall msg msg' . Data.ProtoLens.HasField "logLevel" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "logLevel" msg)
+             (Data.ProtoLens.Field "logLevel" msg')
+logLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "logLevel")
+
+manageCgroups ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "manageCgroups" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "manageCgroups" msg)
+                  (Data.ProtoLens.Field "manageCgroups" msg')
+manageCgroups
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "manageCgroups")
+
+manageCgroupsMode ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "manageCgroupsMode" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "manageCgroupsMode" msg)
+                      (Data.ProtoLens.Field "manageCgroupsMode" msg')
+manageCgroupsMode
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "manageCgroupsMode")
+
+maybe'address ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'address" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'address" msg)
+                  (Data.ProtoLens.Field "maybe'address" msg')
+maybe'address
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'address")
+
+maybe'autoDedup ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'autoDedup" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'autoDedup" msg)
+                    (Data.ProtoLens.Field "maybe'autoDedup" msg')
+maybe'autoDedup
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'autoDedup")
+
+maybe'autoExtMnt ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'autoExtMnt" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'autoExtMnt" msg)
+                     (Data.ProtoLens.Field "maybe'autoExtMnt" msg')
+maybe'autoExtMnt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'autoExtMnt")
+
+maybe'cgroupProps ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'cgroupProps" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'cgroupProps" msg)
+                      (Data.ProtoLens.Field "maybe'cgroupProps" msg')
+maybe'cgroupProps
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'cgroupProps")
+
+maybe'cgroupPropsFile ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'cgroupPropsFile" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'cgroupPropsFile" msg)
+                          (Data.ProtoLens.Field "maybe'cgroupPropsFile" msg')
+maybe'cgroupPropsFile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'cgroupPropsFile")
+
+maybe'cpuCap ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'cpuCap" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'cpuCap" msg)
+                 (Data.ProtoLens.Field "maybe'cpuCap" msg')
+maybe'cpuCap
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'cpuCap")
+
+maybe'crErrmsg ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'crErrmsg" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'crErrmsg" msg)
+                   (Data.ProtoLens.Field "maybe'crErrmsg" msg')
+maybe'crErrmsg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'crErrmsg")
+
+maybe'crErrno ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'crErrno" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'crErrno" msg)
+                  (Data.ProtoLens.Field "maybe'crErrno" msg')
+maybe'crErrno
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'crErrno")
+
+maybe'ctrl ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'ctrl" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'ctrl" msg)
+               (Data.ProtoLens.Field "maybe'ctrl" msg')
+maybe'ctrl
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'ctrl")
+
+maybe'dump ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'dump" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'dump" msg)
+               (Data.ProtoLens.Field "maybe'dump" msg')
+maybe'dump
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'dump")
+
+maybe'emptyNs ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'emptyNs" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'emptyNs" msg)
+                  (Data.ProtoLens.Field "maybe'emptyNs" msg')
+maybe'emptyNs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'emptyNs")
+
+maybe'evasiveDevices ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'evasiveDevices" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'evasiveDevices" msg)
+                         (Data.ProtoLens.Field "maybe'evasiveDevices" msg')
+maybe'evasiveDevices
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'evasiveDevices")
+
+maybe'extMasters ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'extMasters" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'extMasters" msg)
+                     (Data.ProtoLens.Field "maybe'extMasters" msg')
+maybe'extMasters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'extMasters")
+
+maybe'extSharing ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'extSharing" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'extSharing" msg)
+                     (Data.ProtoLens.Field "maybe'extSharing" msg')
+maybe'extSharing
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'extSharing")
+
+maybe'extUnixSk ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'extUnixSk" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'extUnixSk" msg)
+                    (Data.ProtoLens.Field "maybe'extUnixSk" msg')
+maybe'extUnixSk
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'extUnixSk")
+
+maybe'extraOpt ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'extraOpt" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'extraOpt" msg)
+                   (Data.ProtoLens.Field "maybe'extraOpt" msg')
+maybe'extraOpt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'extraOpt")
+
+maybe'fd ::
+         forall msg msg' . Data.ProtoLens.HasField "maybe'fd" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'fd" msg)
+             (Data.ProtoLens.Field "maybe'fd" msg')
+maybe'fd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'fd")
+
+maybe'features ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'features" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'features" msg)
+                   (Data.ProtoLens.Field "maybe'features" msg')
+maybe'features
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'features")
+
+maybe'fileLocks ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'fileLocks" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'fileLocks" msg)
+                    (Data.ProtoLens.Field "maybe'fileLocks" msg')
+maybe'fileLocks
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fileLocks")
+
+maybe'forceIrmap ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'forceIrmap" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'forceIrmap" msg)
+                     (Data.ProtoLens.Field "maybe'forceIrmap" msg')
+maybe'forceIrmap
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'forceIrmap")
+
+maybe'freezeCgroup ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'freezeCgroup" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'freezeCgroup" msg)
+                       (Data.ProtoLens.Field "maybe'freezeCgroup" msg')
+maybe'freezeCgroup
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'freezeCgroup")
+
+maybe'ghostLimit ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'ghostLimit" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'ghostLimit" msg)
+                     (Data.ProtoLens.Field "maybe'ghostLimit" msg')
+maybe'ghostLimit
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'ghostLimit")
+
+maybe'keepOpen ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'keepOpen" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'keepOpen" msg)
+                   (Data.ProtoLens.Field "maybe'keepOpen" msg')
+maybe'keepOpen
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'keepOpen")
+
+maybe'leaveRunning ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'leaveRunning" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'leaveRunning" msg)
+                       (Data.ProtoLens.Field "maybe'leaveRunning" msg')
+maybe'leaveRunning
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'leaveRunning")
+
+maybe'linkRemap ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'linkRemap" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'linkRemap" msg)
+                    (Data.ProtoLens.Field "maybe'linkRemap" msg')
+maybe'linkRemap
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'linkRemap")
+
+maybe'logFile ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'logFile" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'logFile" msg)
+                  (Data.ProtoLens.Field "maybe'logFile" msg')
+maybe'logFile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'logFile")
+
+maybe'logLevel ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'logLevel" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'logLevel" msg)
+                   (Data.ProtoLens.Field "maybe'logLevel" msg')
+maybe'logLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'logLevel")
+
+maybe'manageCgroups ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'manageCgroups" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'manageCgroups" msg)
+                        (Data.ProtoLens.Field "maybe'manageCgroups" msg')
+maybe'manageCgroups
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'manageCgroups")
+
+maybe'manageCgroupsMode ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maybe'manageCgroupsMode" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maybe'manageCgroupsMode" msg)
+                            (Data.ProtoLens.Field "maybe'manageCgroupsMode" msg')
+maybe'manageCgroupsMode
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'manageCgroupsMode")
+
+maybe'memTrack ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'memTrack" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'memTrack" msg)
+                   (Data.ProtoLens.Field "maybe'memTrack" msg')
+maybe'memTrack
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'memTrack")
+
+maybe'notify ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'notify" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'notify" msg)
+                 (Data.ProtoLens.Field "maybe'notify" msg')
+maybe'notify
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'notify")
+
+maybe'notifyScripts ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'notifyScripts" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'notifyScripts" msg)
+                        (Data.ProtoLens.Field "maybe'notifyScripts" msg')
+maybe'notifyScripts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'notifyScripts")
+
+maybe'notifySuccess ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'notifySuccess" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'notifySuccess" msg)
+                        (Data.ProtoLens.Field "maybe'notifySuccess" msg')
+maybe'notifySuccess
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'notifySuccess")
+
+maybe'opts ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'opts" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'opts" msg)
+               (Data.ProtoLens.Field "maybe'opts" msg')
+maybe'opts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'opts")
+
+maybe'parentImg ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'parentImg" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'parentImg" msg)
+                    (Data.ProtoLens.Field "maybe'parentImg" msg')
+maybe'parentImg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'parentImg")
+
+maybe'pid ::
+          forall msg msg' . Data.ProtoLens.HasField "maybe'pid" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'pid" msg)
+              (Data.ProtoLens.Field "maybe'pid" msg')
+maybe'pid
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'pid")
+
+maybe'port ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'port" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'port" msg)
+               (Data.ProtoLens.Field "maybe'port" msg')
+maybe'port
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'port")
+
+maybe'ps ::
+         forall msg msg' . Data.ProtoLens.HasField "maybe'ps" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'ps" msg)
+             (Data.ProtoLens.Field "maybe'ps" msg')
+maybe'ps
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'ps")
+
+maybe'restore ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'restore" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'restore" msg)
+                  (Data.ProtoLens.Field "maybe'restore" msg')
+maybe'restore
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'restore")
+
+maybe'restored ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'restored" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'restored" msg)
+                   (Data.ProtoLens.Field "maybe'restored" msg')
+maybe'restored
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'restored")
+
+maybe'root ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'root" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'root" msg)
+               (Data.ProtoLens.Field "maybe'root" msg')
+maybe'root
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'root")
+
+maybe'rstSibling ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'rstSibling" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'rstSibling" msg)
+                     (Data.ProtoLens.Field "maybe'rstSibling" msg')
+maybe'rstSibling
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'rstSibling")
+
+maybe'script ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'script" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'script" msg)
+                 (Data.ProtoLens.Field "maybe'script" msg')
+maybe'script
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'script")
+
+maybe'shellJob ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'shellJob" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'shellJob" msg)
+                   (Data.ProtoLens.Field "maybe'shellJob" msg')
+maybe'shellJob
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'shellJob")
+
+maybe'tcpEstablished ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'tcpEstablished" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'tcpEstablished" msg)
+                         (Data.ProtoLens.Field "maybe'tcpEstablished" msg')
+maybe'tcpEstablished
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'tcpEstablished")
+
+maybe'tcpSkipInFlight ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'tcpSkipInFlight" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'tcpSkipInFlight" msg)
+                          (Data.ProtoLens.Field "maybe'tcpSkipInFlight" msg')
+maybe'tcpSkipInFlight
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'tcpSkipInFlight")
+
+maybe'timeout ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'timeout" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'timeout" msg)
+                  (Data.ProtoLens.Field "maybe'timeout" msg')
+maybe'timeout
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'timeout")
+
+maybe'trackMem ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'trackMem" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'trackMem" msg)
+                   (Data.ProtoLens.Field "maybe'trackMem" msg')
+maybe'trackMem
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'trackMem")
+
+maybe'weakSysctls ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'weakSysctls" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'weakSysctls" msg)
+                      (Data.ProtoLens.Field "maybe'weakSysctls" msg')
+maybe'weakSysctls
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'weakSysctls")
+
+maybe'workDirFd ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'workDirFd" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'workDirFd" msg)
+                    (Data.ProtoLens.Field "maybe'workDirFd" msg')
+maybe'workDirFd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'workDirFd")
+
+memTrack ::
+         forall msg msg' . Data.ProtoLens.HasField "memTrack" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "memTrack" msg)
+             (Data.ProtoLens.Field "memTrack" msg')
+memTrack
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "memTrack")
+
+notify ::
+       forall msg msg' . Data.ProtoLens.HasField "notify" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "notify" msg)
+           (Data.ProtoLens.Field "notify" msg')
+notify
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "notify")
+
+notifyScripts ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "notifyScripts" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "notifyScripts" msg)
+                  (Data.ProtoLens.Field "notifyScripts" msg')
+notifyScripts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "notifyScripts")
+
+notifySuccess ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "notifySuccess" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "notifySuccess" msg)
+                  (Data.ProtoLens.Field "notifySuccess" msg')
+notifySuccess
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "notifySuccess")
+
+ns ::
+   forall msg msg' . Data.ProtoLens.HasField "ns" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ns" msg)
+       (Data.ProtoLens.Field "ns" msg')
+ns
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ns")
+
+nsFile ::
+       forall msg msg' . Data.ProtoLens.HasField "nsFile" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "nsFile" msg)
+           (Data.ProtoLens.Field "nsFile" msg')
+nsFile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "nsFile")
+
+opts ::
+     forall msg msg' . Data.ProtoLens.HasField "opts" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "opts" msg)
+         (Data.ProtoLens.Field "opts" msg')
+opts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "opts")
+
+parentImg ::
+          forall msg msg' . Data.ProtoLens.HasField "parentImg" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "parentImg" msg)
+              (Data.ProtoLens.Field "parentImg" msg')
+parentImg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "parentImg")
+
+path ::
+     forall msg msg' . Data.ProtoLens.HasField "path" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "path" msg)
+         (Data.ProtoLens.Field "path" msg')
+path
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "path")
+
+pid ::
+    forall msg msg' . Data.ProtoLens.HasField "pid" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pid" msg)
+        (Data.ProtoLens.Field "pid" msg')
+pid
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pid")
+
+port ::
+     forall msg msg' . Data.ProtoLens.HasField "port" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "port" msg)
+         (Data.ProtoLens.Field "port" msg')
+port
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "port")
+
+ps ::
+   forall msg msg' . Data.ProtoLens.HasField "ps" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ps" msg)
+       (Data.ProtoLens.Field "ps" msg')
+ps
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ps")
+
+restore ::
+        forall msg msg' . Data.ProtoLens.HasField "restore" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "restore" msg)
+            (Data.ProtoLens.Field "restore" msg')
+restore
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "restore")
+
+restored ::
+         forall msg msg' . Data.ProtoLens.HasField "restored" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "restored" msg)
+             (Data.ProtoLens.Field "restored" msg')
+restored
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "restored")
+
+root ::
+     forall msg msg' . Data.ProtoLens.HasField "root" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "root" msg)
+         (Data.ProtoLens.Field "root" msg')
+root
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "root")
+
+rstSibling ::
+           forall msg msg' . Data.ProtoLens.HasField "rstSibling" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "rstSibling" msg)
+               (Data.ProtoLens.Field "rstSibling" msg')
+rstSibling
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "rstSibling")
+
+script ::
+       forall msg msg' . Data.ProtoLens.HasField "script" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "script" msg)
+           (Data.ProtoLens.Field "script" msg')
+script
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "script")
+
+shellJob ::
+         forall msg msg' . Data.ProtoLens.HasField "shellJob" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "shellJob" msg)
+             (Data.ProtoLens.Field "shellJob" msg')
+shellJob
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "shellJob")
+
+skipMnt ::
+        forall msg msg' . Data.ProtoLens.HasField "skipMnt" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "skipMnt" msg)
+            (Data.ProtoLens.Field "skipMnt" msg')
+skipMnt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "skipMnt")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
+
+tcpEstablished ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "tcpEstablished" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "tcpEstablished" msg)
+                   (Data.ProtoLens.Field "tcpEstablished" msg')
+tcpEstablished
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "tcpEstablished")
+
+tcpSkipInFlight ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "tcpSkipInFlight" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "tcpSkipInFlight" msg)
+                    (Data.ProtoLens.Field "tcpSkipInFlight" msg')
+tcpSkipInFlight
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "tcpSkipInFlight")
+
+timeout ::
+        forall msg msg' . Data.ProtoLens.HasField "timeout" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "timeout" msg)
+            (Data.ProtoLens.Field "timeout" msg')
+timeout
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "timeout")
+
+trackMem ::
+         forall msg msg' . Data.ProtoLens.HasField "trackMem" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "trackMem" msg)
+             (Data.ProtoLens.Field "trackMem" msg')
+trackMem
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "trackMem")
+
+type' ::
+      forall msg msg' . Data.ProtoLens.HasField "type'" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type'" msg)
+          (Data.ProtoLens.Field "type'" msg')
+type'
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type'")
+
+unixSkIno ::
+          forall msg msg' . Data.ProtoLens.HasField "unixSkIno" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unixSkIno" msg)
+              (Data.ProtoLens.Field "unixSkIno" msg')
+unixSkIno
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unixSkIno")
+
+val ::
+    forall msg msg' . Data.ProtoLens.HasField "val" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "val" msg)
+        (Data.ProtoLens.Field "val" msg')
+val
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "val")
+
+veths ::
+      forall msg msg' . Data.ProtoLens.HasField "veths" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "veths" msg)
+          (Data.ProtoLens.Field "veths" msg')
+veths
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "veths")
+
+weakSysctls ::
+            forall msg msg' . Data.ProtoLens.HasField "weakSysctls" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "weakSysctls" msg)
+                (Data.ProtoLens.Field "weakSysctls" msg')
+weakSysctls
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "weakSysctls")
+
+workDirFd ::
+          forall msg msg' . Data.ProtoLens.HasField "workDirFd" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "workDirFd" msg)
+              (Data.ProtoLens.Field "workDirFd" msg')
+workDirFd
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "workDirFd")
diff --git a/src/criu/rpc.proto b/src/criu/rpc.proto
new file mode 100644
--- /dev/null
+++ b/src/criu/rpc.proto
@@ -0,0 +1,192 @@
+syntax = "proto2";
+
+message criu_page_server_info {
+	optional string		address	= 1;
+	optional int32		port	= 2;
+	optional int32		pid	= 3;
+	optional int32		fd	= 4;
+}
+
+message criu_veth_pair {
+	required string		if_in	= 1;
+	required string		if_out	= 2;
+};
+
+message ext_mount_map {
+	required string		key	= 1;
+	required string		val	= 2;
+};
+
+message join_namespace {
+	required string		ns		= 1;
+	required string		ns_file		= 2;
+	optional string		extra_opt	= 3;
+}
+
+message inherit_fd {
+	required string		key	= 1;
+	required int32		fd	= 2;
+};
+
+message cgroup_root {
+	optional string		ctrl	= 1;
+	required string		path	= 2;
+};
+
+message unix_sk {
+	required uint32		inode 	= 1;
+};
+
+enum Criu_cg_mode {
+	IGNORE	= 0;
+	CG_NONE	= 1;
+	PROPS	= 2;
+	SOFT	= 3;
+	FULL	= 4;
+	STRICT	= 5;
+	DEFAULT = 6;
+};
+
+message criu_opts {
+	required int32			images_dir_fd	= 1;
+	optional int32			pid		= 2; /* if not set on dump, will dump requesting process */
+
+	optional bool			leave_running	= 3;
+	optional bool			ext_unix_sk	= 4;
+	optional bool			tcp_established	= 5;
+	optional bool			evasive_devices	= 6;
+	optional bool			shell_job	= 7;
+	optional bool			file_locks	= 8;
+	optional int32			log_level	= 9 [default = 2];
+	optional string			log_file	= 10; /* No subdirs are allowed. Consider using work-dir */
+
+	optional criu_page_server_info	ps		= 11;
+
+	optional bool			notify_scripts	= 12;
+
+	optional string			root		= 13;
+	optional string			parent_img	= 14;
+	optional bool			track_mem	= 15;
+	optional bool			auto_dedup	= 16;
+
+	optional int32			work_dir_fd	= 17;
+	optional bool			link_remap	= 18;
+	repeated criu_veth_pair		veths		= 19; /* DEPRECATED, use external instead */
+
+	optional uint32			cpu_cap		= 20 [default = 0xffffffff];
+	optional bool			force_irmap	= 21;
+	repeated string			exec_cmd	= 22;
+
+	repeated ext_mount_map		ext_mnt		= 23; /* DEPRECATED, use external instead */
+	optional bool			manage_cgroups	= 24; /* backward compatibility */
+	repeated cgroup_root		cg_root		= 25;
+
+	optional bool			rst_sibling	= 26; /* swrk only */
+	repeated inherit_fd		inherit_fd	= 27; /* swrk only */
+
+	optional bool			auto_ext_mnt	= 28;
+	optional bool			ext_sharing 	= 29;
+	optional bool			ext_masters	= 30;
+
+	repeated string			skip_mnt	= 31;
+	repeated string			enable_fs	= 32;
+
+	repeated unix_sk                unix_sk_ino     = 33; /* DEPRECATED, use external instead */
+
+	optional Criu_cg_mode		manage_cgroups_mode = 34;
+	optional uint32			ghost_limit	= 35 [default = 0x100000];
+	repeated string			irmap_scan_paths = 36;
+	repeated string			external	= 37;
+	optional uint32			empty_ns	= 38;
+	repeated join_namespace		join_ns		= 39;
+
+	optional string			cgroup_props		= 41;
+	optional string			cgroup_props_file	= 42;
+	repeated string			cgroup_dump_controller	= 43;
+
+	optional string			freeze_cgroup		= 44;
+	optional uint32			timeout			= 45;
+	optional bool			tcp_skip_in_flight	= 46;
+	optional bool			weak_sysctls		= 47;
+}
+
+message criu_dump_resp {
+	optional bool restored		= 1;
+}
+
+message criu_restore_resp {
+	required int32 pid		= 1;
+}
+
+message criu_notify {
+	optional string script		= 1;
+	optional int32	pid		= 2;
+}
+
+enum Criu_req_type {
+	EMPTY		= 0;
+	DUMP		= 1;
+	RESTORE		= 2;
+	CHECK		= 3;
+	PRE_DUMP	= 4;
+	PAGE_SERVER	= 5;
+
+	NOTIFY		= 6;
+
+	CPUINFO_DUMP	= 7;
+	CPUINFO_CHECK	= 8;
+
+	FEATURE_CHECK	= 9;
+}
+
+/*
+ * List of features which can queried via
+ * CRIU_REQ_TYPE__FEATURE_CHECK
+ */
+message criu_features {
+	optional bool			mem_track	= 1;
+}
+
+/*
+ * Request -- each type corresponds to must-be-there
+ * request arguments of respective type
+ */
+
+message criu_req {
+	required Criu_req_type		type		= 1;
+
+	optional criu_opts		opts		= 2;
+	optional bool			notify_success	= 3;
+
+	/*
+	 * When set service won't close the connection but
+	 * will wait for more req-s to appear. Works not
+	 * for all request types.
+	 */
+	optional bool			keep_open	= 4;
+	/*
+	 * 'features' can be used to query which features
+	 * are supported by the installed criu/kernel
+	 * via RPC.
+	 */
+	optional criu_features		features	= 5;
+}
+
+/*
+ * Response -- it states whether the request was served
+ * and additional request-specific information
+ */
+
+message criu_resp {
+	required Criu_req_type		type		= 1;
+	required bool			success		= 2;
+
+	optional criu_dump_resp		dump		= 3;
+	optional criu_restore_resp	restore		= 4;
+	optional criu_notify		notify		= 5;
+	optional criu_page_server_info	ps		= 6;
+
+	optional int32			cr_errno	= 7;
+	optional criu_features		features	= 8;
+	optional string			cr_errmsg	= 9;
+}
