{- This file was auto-generated from tensorflow/core/protobuf/debug.proto by the proto-lens-protoc program. -}
{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
  UndecidableInstances, MultiParamTypeClasses, FlexibleContexts,
  FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude
  #-}
{-# OPTIONS_GHC -fno-warn-unused-imports#-}
module Proto.Tensorflow.Core.Protobuf.Debug where
import qualified Data.ProtoLens.Reexport.Prelude as Prelude
import qualified Data.ProtoLens.Reexport.Data.Int as Data.Int
import qualified Data.ProtoLens.Reexport.Data.Word as 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
import qualified Data.ProtoLens.Reexport.Lens.Labels as Lens.Labels

data DebugOptions = DebugOptions{_DebugOptions'debugTensorWatchOpts
                                 :: ![DebugTensorWatch],
                                 _DebugOptions'globalStep :: !Data.Int.Int64}
                  deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance (a ~ [DebugTensorWatch], b ~ [DebugTensorWatch],
          Prelude.Functor f) =>
         Lens.Labels.HasLens "debugTensorWatchOpts" f DebugOptions
           DebugOptions
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _DebugOptions'debugTensorWatchOpts
                 (\ x__ y__ -> x__{_DebugOptions'debugTensorWatchOpts = y__}))
              Prelude.id

instance (a ~ Data.Int.Int64, b ~ Data.Int.Int64,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "globalStep" f DebugOptions DebugOptions a b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _DebugOptions'globalStep
                 (\ x__ y__ -> x__{_DebugOptions'globalStep = y__}))
              Prelude.id

instance Data.Default.Class.Default DebugOptions where
        def
          = DebugOptions{_DebugOptions'debugTensorWatchOpts = [],
                         _DebugOptions'globalStep = Data.ProtoLens.fieldDefault}

instance Data.ProtoLens.Message DebugOptions where
        descriptor
          = let debugTensorWatchOpts__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "debug_tensor_watch_opts"
                      (Data.ProtoLens.MessageField ::
                         Data.ProtoLens.FieldTypeDescriptor DebugTensorWatch)
                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
                         debugTensorWatchOpts)
                      :: Data.ProtoLens.FieldDescriptor DebugOptions
                globalStep__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "global_step"
                      (Data.ProtoLens.Int64Field ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional globalStep)
                      :: Data.ProtoLens.FieldDescriptor DebugOptions
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.DebugOptions")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 4, debugTensorWatchOpts__field_descriptor),
                    (Data.ProtoLens.Tag 10, globalStep__field_descriptor)])
                (Data.Map.fromList
                   [("debug_tensor_watch_opts",
                     debugTensorWatchOpts__field_descriptor),
                    ("global_step", globalStep__field_descriptor)])

data DebugTensorWatch = DebugTensorWatch{_DebugTensorWatch'nodeName
                                         :: !Data.Text.Text,
                                         _DebugTensorWatch'outputSlot :: !Data.Int.Int32,
                                         _DebugTensorWatch'debugOps :: ![Data.Text.Text],
                                         _DebugTensorWatch'debugUrls :: ![Data.Text.Text],
                                         _DebugTensorWatch'tolerateDebugOpCreationFailures ::
                                         !Prelude.Bool}
                      deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

instance (a ~ Data.Text.Text, b ~ Data.Text.Text,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "nodeName" f DebugTensorWatch DebugTensorWatch
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _DebugTensorWatch'nodeName
                 (\ x__ y__ -> x__{_DebugTensorWatch'nodeName = y__}))
              Prelude.id

instance (a ~ Data.Int.Int32, b ~ Data.Int.Int32,
          Prelude.Functor f) =>
         Lens.Labels.HasLens "outputSlot" f DebugTensorWatch
           DebugTensorWatch
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _DebugTensorWatch'outputSlot
                 (\ x__ y__ -> x__{_DebugTensorWatch'outputSlot = y__}))
              Prelude.id

instance (a ~ [Data.Text.Text], b ~ [Data.Text.Text],
          Prelude.Functor f) =>
         Lens.Labels.HasLens "debugOps" f DebugTensorWatch DebugTensorWatch
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _DebugTensorWatch'debugOps
                 (\ x__ y__ -> x__{_DebugTensorWatch'debugOps = y__}))
              Prelude.id

instance (a ~ [Data.Text.Text], b ~ [Data.Text.Text],
          Prelude.Functor f) =>
         Lens.Labels.HasLens "debugUrls" f DebugTensorWatch DebugTensorWatch
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens _DebugTensorWatch'debugUrls
                 (\ x__ y__ -> x__{_DebugTensorWatch'debugUrls = y__}))
              Prelude.id

instance (a ~ Prelude.Bool, b ~ Prelude.Bool, Prelude.Functor f) =>
         Lens.Labels.HasLens "tolerateDebugOpCreationFailures" f
           DebugTensorWatch
           DebugTensorWatch
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens
                 _DebugTensorWatch'tolerateDebugOpCreationFailures
                 (\ x__ y__ ->
                    x__{_DebugTensorWatch'tolerateDebugOpCreationFailures = y__}))
              Prelude.id

instance Data.Default.Class.Default DebugTensorWatch where
        def
          = DebugTensorWatch{_DebugTensorWatch'nodeName =
                               Data.ProtoLens.fieldDefault,
                             _DebugTensorWatch'outputSlot = Data.ProtoLens.fieldDefault,
                             _DebugTensorWatch'debugOps = [], _DebugTensorWatch'debugUrls = [],
                             _DebugTensorWatch'tolerateDebugOpCreationFailures =
                               Data.ProtoLens.fieldDefault}

instance Data.ProtoLens.Message DebugTensorWatch where
        descriptor
          = let nodeName__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "node_name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional nodeName)
                      :: Data.ProtoLens.FieldDescriptor DebugTensorWatch
                outputSlot__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "output_slot"
                      (Data.ProtoLens.Int32Field ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional outputSlot)
                      :: Data.ProtoLens.FieldDescriptor DebugTensorWatch
                debugOps__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "debug_ops"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked debugOps)
                      :: Data.ProtoLens.FieldDescriptor DebugTensorWatch
                debugUrls__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "debug_urls"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked debugUrls)
                      :: Data.ProtoLens.FieldDescriptor DebugTensorWatch
                tolerateDebugOpCreationFailures__field_descriptor
                  = Data.ProtoLens.FieldDescriptor
                      "tolerate_debug_op_creation_failures"
                      (Data.ProtoLens.BoolField ::
                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
                         tolerateDebugOpCreationFailures)
                      :: Data.ProtoLens.FieldDescriptor DebugTensorWatch
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.DebugTensorWatch")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, nodeName__field_descriptor),
                    (Data.ProtoLens.Tag 2, outputSlot__field_descriptor),
                    (Data.ProtoLens.Tag 3, debugOps__field_descriptor),
                    (Data.ProtoLens.Tag 4, debugUrls__field_descriptor),
                    (Data.ProtoLens.Tag 5,
                     tolerateDebugOpCreationFailures__field_descriptor)])
                (Data.Map.fromList
                   [("node_name", nodeName__field_descriptor),
                    ("output_slot", outputSlot__field_descriptor),
                    ("debug_ops", debugOps__field_descriptor),
                    ("debug_urls", debugUrls__field_descriptor),
                    ("tolerate_debug_op_creation_failures",
                     tolerateDebugOpCreationFailures__field_descriptor)])

debugOps ::
         forall f s t a b . (Lens.Labels.HasLens "debugOps" f s t a b) =>
           Lens.Family2.LensLike f s t a b
debugOps
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "debugOps")

debugTensorWatchOpts ::
                     forall f s t a b .
                       (Lens.Labels.HasLens "debugTensorWatchOpts" f s t a b) =>
                       Lens.Family2.LensLike f s t a b
debugTensorWatchOpts
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) ::
         (Lens.Labels.Proxy#) "debugTensorWatchOpts")

debugUrls ::
          forall f s t a b . (Lens.Labels.HasLens "debugUrls" f s t a b) =>
            Lens.Family2.LensLike f s t a b
debugUrls
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "debugUrls")

globalStep ::
           forall f s t a b . (Lens.Labels.HasLens "globalStep" f s t a b) =>
             Lens.Family2.LensLike f s t a b
globalStep
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "globalStep")

nodeName ::
         forall f s t a b . (Lens.Labels.HasLens "nodeName" f s t a b) =>
           Lens.Family2.LensLike f s t a b
nodeName
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "nodeName")

outputSlot ::
           forall f s t a b . (Lens.Labels.HasLens "outputSlot" f s t a b) =>
             Lens.Family2.LensLike f s t a b
outputSlot
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) :: (Lens.Labels.Proxy#) "outputSlot")

tolerateDebugOpCreationFailures ::
                                forall f s t a b .
                                  (Lens.Labels.HasLens "tolerateDebugOpCreationFailures" f s t a
                                     b) =>
                                  Lens.Family2.LensLike f s t a b
tolerateDebugOpCreationFailures
  = Lens.Labels.lensOf
      ((Lens.Labels.proxy#) ::
         (Lens.Labels.Proxy#) "tolerateDebugOpCreationFailures")