{- This file was auto-generated from tensorflow/core/protobuf/queue_runner.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.QueueRunner 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
import qualified Proto.Tensorflow.Core.Lib.Core.ErrorCodes

data QueueRunnerDef = QueueRunnerDef{_QueueRunnerDef'queueName ::
                                     !Data.Text.Text,
                                     _QueueRunnerDef'enqueueOpName :: ![Data.Text.Text],
                                     _QueueRunnerDef'closeOpName :: !Data.Text.Text,
                                     _QueueRunnerDef'cancelOpName :: !Data.Text.Text,
                                     _QueueRunnerDef'queueClosedExceptionTypes ::
                                     ![Proto.Tensorflow.Core.Lib.Core.ErrorCodes.Code]}
                    deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)

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

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

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

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

instance (a ~ [Proto.Tensorflow.Core.Lib.Core.ErrorCodes.Code],
          b ~ [Proto.Tensorflow.Core.Lib.Core.ErrorCodes.Code],
          Prelude.Functor f) =>
         Lens.Labels.HasLens "queueClosedExceptionTypes" f QueueRunnerDef
           QueueRunnerDef
           a
           b
         where
        lensOf _
          = (Prelude..)
              (Lens.Family2.Unchecked.lens
                 _QueueRunnerDef'queueClosedExceptionTypes
                 (\ x__ y__ ->
                    x__{_QueueRunnerDef'queueClosedExceptionTypes = y__}))
              Prelude.id

instance Data.Default.Class.Default QueueRunnerDef where
        def
          = QueueRunnerDef{_QueueRunnerDef'queueName =
                             Data.ProtoLens.fieldDefault,
                           _QueueRunnerDef'enqueueOpName = [],
                           _QueueRunnerDef'closeOpName = Data.ProtoLens.fieldDefault,
                           _QueueRunnerDef'cancelOpName = Data.ProtoLens.fieldDefault,
                           _QueueRunnerDef'queueClosedExceptionTypes = []}

instance Data.ProtoLens.Message QueueRunnerDef where
        descriptor
          = let queueName__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "queue_name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional queueName)
                      :: Data.ProtoLens.FieldDescriptor QueueRunnerDef
                enqueueOpName__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "enqueue_op_name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
                         enqueueOpName)
                      :: Data.ProtoLens.FieldDescriptor QueueRunnerDef
                closeOpName__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "close_op_name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional closeOpName)
                      :: Data.ProtoLens.FieldDescriptor QueueRunnerDef
                cancelOpName__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "cancel_op_name"
                      (Data.ProtoLens.StringField ::
                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional cancelOpName)
                      :: Data.ProtoLens.FieldDescriptor QueueRunnerDef
                queueClosedExceptionTypes__field_descriptor
                  = Data.ProtoLens.FieldDescriptor "queue_closed_exception_types"
                      (Data.ProtoLens.EnumField ::
                         Data.ProtoLens.FieldTypeDescriptor
                           Proto.Tensorflow.Core.Lib.Core.ErrorCodes.Code)
                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed
                         queueClosedExceptionTypes)
                      :: Data.ProtoLens.FieldDescriptor QueueRunnerDef
              in
              Data.ProtoLens.MessageDescriptor
                (Data.Text.pack "tensorflow.QueueRunnerDef")
                (Data.Map.fromList
                   [(Data.ProtoLens.Tag 1, queueName__field_descriptor),
                    (Data.ProtoLens.Tag 2, enqueueOpName__field_descriptor),
                    (Data.ProtoLens.Tag 3, closeOpName__field_descriptor),
                    (Data.ProtoLens.Tag 4, cancelOpName__field_descriptor),
                    (Data.ProtoLens.Tag 5,
                     queueClosedExceptionTypes__field_descriptor)])
                (Data.Map.fromList
                   [("queue_name", queueName__field_descriptor),
                    ("enqueue_op_name", enqueueOpName__field_descriptor),
                    ("close_op_name", closeOpName__field_descriptor),
                    ("cancel_op_name", cancelOpName__field_descriptor),
                    ("queue_closed_exception_types",
                     queueClosedExceptionTypes__field_descriptor)])

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

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

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

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

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