// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: tensorflow/core/framework/graph_transfer_info.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Tensorflow {

  /// <summary>Holder for reflection information generated from tensorflow/core/framework/graph_transfer_info.proto</summary>
  public static partial class GraphTransferInfoReflection {

    #region Descriptor
    /// <summary>File descriptor for tensorflow/core/framework/graph_transfer_info.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static GraphTransferInfoReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CjN0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2dyYXBoX3RyYW5zZmVyX2lu",
            "Zm8ucHJvdG8SCnRlbnNvcmZsb3caJXRlbnNvcmZsb3cvY29yZS9mcmFtZXdv",
            "cmsvdHlwZXMucHJvdG8iPgoWR3JhcGhUcmFuc2Zlck5vZGVJbnB1dBIPCgdu",
            "b2RlX2lkGAEgASgFEhMKC291dHB1dF9wb3J0GAIgASgFIpsBChVHcmFwaFRy",
            "YW5zZmVyTm9kZUluZm8SDAoEbmFtZRgBIAEoCRIPCgdub2RlX2lkGAIgASgF",
            "EhEKCXR5cGVfbmFtZRgDIAEoCRIRCglzb2Nfb3BfaWQYBCABKAUSEgoKcGFk",
            "ZGluZ19pZBgFIAEoBRITCgtpbnB1dF9jb3VudBgGIAEoBRIUCgxvdXRwdXRf",
            "Y291bnQYByABKAUifQoaR3JhcGhUcmFuc2ZlckNvbnN0Tm9kZUluZm8SDAoE",
            "bmFtZRgBIAEoCRIPCgdub2RlX2lkGAIgASgFEg0KBXNoYXBlGAMgAygDEgwK",
            "BGRhdGEYBCABKAwSIwoFZHR5cGUYBSABKA4yFC50ZW5zb3JmbG93LkRhdGFU",
            "eXBlImUKGkdyYXBoVHJhbnNmZXJOb2RlSW5wdXRJbmZvEg8KB25vZGVfaWQY",
            "ASABKAUSNgoKbm9kZV9pbnB1dBgCIAMoCzIiLnRlbnNvcmZsb3cuR3JhcGhU",
            "cmFuc2Zlck5vZGVJbnB1dCJFChtHcmFwaFRyYW5zZmVyTm9kZU91dHB1dElu",
            "Zm8SDwoHbm9kZV9pZBgBIAEoBRIVCg1tYXhfYnl0ZV9zaXplGAIgAygFImMK",
            "H0dyYXBoVHJhbnNmZXJHcmFwaElucHV0Tm9kZUluZm8SDAoEbmFtZRgBIAEo",
            "CRINCgVzaGFwZRgCIAMoAxIjCgVkdHlwZRgDIAEoDjIULnRlbnNvcmZsb3cu",
            "RGF0YVR5cGUiZAogR3JhcGhUcmFuc2ZlckdyYXBoT3V0cHV0Tm9kZUluZm8S",
            "DAoEbmFtZRgBIAEoCRINCgVzaGFwZRgCIAMoAxIjCgVkdHlwZRgDIAEoDjIU",
            "LnRlbnNvcmZsb3cuRGF0YVR5cGUijQQKEUdyYXBoVHJhbnNmZXJJbmZvEjQK",
            "CW5vZGVfaW5mbxgBIAMoCzIhLnRlbnNvcmZsb3cuR3JhcGhUcmFuc2Zlck5v",
            "ZGVJbmZvEj8KD2NvbnN0X25vZGVfaW5mbxgCIAMoCzImLnRlbnNvcmZsb3cu",
            "R3JhcGhUcmFuc2ZlckNvbnN0Tm9kZUluZm8SPwoPbm9kZV9pbnB1dF9pbmZv",
            "GAMgAygLMiYudGVuc29yZmxvdy5HcmFwaFRyYW5zZmVyTm9kZUlucHV0SW5m",
            "bxJBChBub2RlX291dHB1dF9pbmZvGAQgAygLMicudGVuc29yZmxvdy5HcmFw",
            "aFRyYW5zZmVyTm9kZU91dHB1dEluZm8SSgoVZ3JhcGhfaW5wdXRfbm9kZV9p",
            "bmZvGAUgAygLMisudGVuc29yZmxvdy5HcmFwaFRyYW5zZmVyR3JhcGhJbnB1",
            "dE5vZGVJbmZvEkwKFmdyYXBoX291dHB1dF9ub2RlX2luZm8YBiADKAsyLC50",
            "ZW5zb3JmbG93LkdyYXBoVHJhbnNmZXJHcmFwaE91dHB1dE5vZGVJbmZvEj4K",
            "C2Rlc3RpbmF0aW9uGAcgASgOMikudGVuc29yZmxvdy5HcmFwaFRyYW5zZmVy",
            "SW5mby5EZXN0aW5hdGlvbiIjCgtEZXN0aW5hdGlvbhIHCgNOT1AQABILCgdI",
            "RVhBR09OEAFCdgoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQhZHcmFwaFRy",
            "YW5zZmVySW5mb1Byb3RvUAFaPWdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5z",
            "b3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmv4AQFiBnByb3Rv",
            "Mw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Tensorflow.TypesReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferNodeInput), global::Tensorflow.GraphTransferNodeInput.Parser, new[]{ "NodeId", "OutputPort" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferNodeInfo), global::Tensorflow.GraphTransferNodeInfo.Parser, new[]{ "Name", "NodeId", "TypeName", "SocOpId", "PaddingId", "InputCount", "OutputCount" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferConstNodeInfo), global::Tensorflow.GraphTransferConstNodeInfo.Parser, new[]{ "Name", "NodeId", "Shape", "Data", "Dtype" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferNodeInputInfo), global::Tensorflow.GraphTransferNodeInputInfo.Parser, new[]{ "NodeId", "NodeInput" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferNodeOutputInfo), global::Tensorflow.GraphTransferNodeOutputInfo.Parser, new[]{ "NodeId", "MaxByteSize" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferGraphInputNodeInfo), global::Tensorflow.GraphTransferGraphInputNodeInfo.Parser, new[]{ "Name", "Shape", "Dtype" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferGraphOutputNodeInfo), global::Tensorflow.GraphTransferGraphOutputNodeInfo.Parser, new[]{ "Name", "Shape", "Dtype" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphTransferInfo), global::Tensorflow.GraphTransferInfo.Parser, new[]{ "NodeInfo", "ConstNodeInfo", "NodeInputInfo", "NodeOutputInfo", "GraphInputNodeInfo", "GraphOutputNodeInfo", "Destination" }, null, new[]{ typeof(global::Tensorflow.GraphTransferInfo.Types.Destination) }, null)
          }));
    }
    #endregion

  }
  #region Messages
  public sealed partial class GraphTransferNodeInput : pb::IMessage<GraphTransferNodeInput> {
    private static readonly pb::MessageParser<GraphTransferNodeInput> _parser = new pb::MessageParser<GraphTransferNodeInput>(() => new GraphTransferNodeInput());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferNodeInput> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInput() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInput(GraphTransferNodeInput other) : this() {
      nodeId_ = other.nodeId_;
      outputPort_ = other.outputPort_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInput Clone() {
      return new GraphTransferNodeInput(this);
    }

    /// <summary>Field number for the "node_id" field.</summary>
    public const int NodeIdFieldNumber = 1;
    private int nodeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int NodeId {
      get { return nodeId_; }
      set {
        nodeId_ = value;
      }
    }

    /// <summary>Field number for the "output_port" field.</summary>
    public const int OutputPortFieldNumber = 2;
    private int outputPort_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int OutputPort {
      get { return outputPort_; }
      set {
        outputPort_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferNodeInput);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferNodeInput other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NodeId != other.NodeId) return false;
      if (OutputPort != other.OutputPort) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (NodeId != 0) hash ^= NodeId.GetHashCode();
      if (OutputPort != 0) hash ^= OutputPort.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (NodeId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(NodeId);
      }
      if (OutputPort != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(OutputPort);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (NodeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NodeId);
      }
      if (OutputPort != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OutputPort);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferNodeInput other) {
      if (other == null) {
        return;
      }
      if (other.NodeId != 0) {
        NodeId = other.NodeId;
      }
      if (other.OutputPort != 0) {
        OutputPort = other.OutputPort;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            NodeId = input.ReadInt32();
            break;
          }
          case 16: {
            OutputPort = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  public sealed partial class GraphTransferNodeInfo : pb::IMessage<GraphTransferNodeInfo> {
    private static readonly pb::MessageParser<GraphTransferNodeInfo> _parser = new pb::MessageParser<GraphTransferNodeInfo>(() => new GraphTransferNodeInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferNodeInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInfo(GraphTransferNodeInfo other) : this() {
      name_ = other.name_;
      nodeId_ = other.nodeId_;
      typeName_ = other.typeName_;
      socOpId_ = other.socOpId_;
      paddingId_ = other.paddingId_;
      inputCount_ = other.inputCount_;
      outputCount_ = other.outputCount_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInfo Clone() {
      return new GraphTransferNodeInfo(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "node_id" field.</summary>
    public const int NodeIdFieldNumber = 2;
    private int nodeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int NodeId {
      get { return nodeId_; }
      set {
        nodeId_ = value;
      }
    }

    /// <summary>Field number for the "type_name" field.</summary>
    public const int TypeNameFieldNumber = 3;
    private string typeName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string TypeName {
      get { return typeName_; }
      set {
        typeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "soc_op_id" field.</summary>
    public const int SocOpIdFieldNumber = 4;
    private int socOpId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int SocOpId {
      get { return socOpId_; }
      set {
        socOpId_ = value;
      }
    }

    /// <summary>Field number for the "padding_id" field.</summary>
    public const int PaddingIdFieldNumber = 5;
    private int paddingId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int PaddingId {
      get { return paddingId_; }
      set {
        paddingId_ = value;
      }
    }

    /// <summary>Field number for the "input_count" field.</summary>
    public const int InputCountFieldNumber = 6;
    private int inputCount_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int InputCount {
      get { return inputCount_; }
      set {
        inputCount_ = value;
      }
    }

    /// <summary>Field number for the "output_count" field.</summary>
    public const int OutputCountFieldNumber = 7;
    private int outputCount_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int OutputCount {
      get { return outputCount_; }
      set {
        outputCount_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferNodeInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferNodeInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (NodeId != other.NodeId) return false;
      if (TypeName != other.TypeName) return false;
      if (SocOpId != other.SocOpId) return false;
      if (PaddingId != other.PaddingId) return false;
      if (InputCount != other.InputCount) return false;
      if (OutputCount != other.OutputCount) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (NodeId != 0) hash ^= NodeId.GetHashCode();
      if (TypeName.Length != 0) hash ^= TypeName.GetHashCode();
      if (SocOpId != 0) hash ^= SocOpId.GetHashCode();
      if (PaddingId != 0) hash ^= PaddingId.GetHashCode();
      if (InputCount != 0) hash ^= InputCount.GetHashCode();
      if (OutputCount != 0) hash ^= OutputCount.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (NodeId != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(NodeId);
      }
      if (TypeName.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(TypeName);
      }
      if (SocOpId != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(SocOpId);
      }
      if (PaddingId != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(PaddingId);
      }
      if (InputCount != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(InputCount);
      }
      if (OutputCount != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(OutputCount);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (NodeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NodeId);
      }
      if (TypeName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TypeName);
      }
      if (SocOpId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SocOpId);
      }
      if (PaddingId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PaddingId);
      }
      if (InputCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(InputCount);
      }
      if (OutputCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OutputCount);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferNodeInfo other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.NodeId != 0) {
        NodeId = other.NodeId;
      }
      if (other.TypeName.Length != 0) {
        TypeName = other.TypeName;
      }
      if (other.SocOpId != 0) {
        SocOpId = other.SocOpId;
      }
      if (other.PaddingId != 0) {
        PaddingId = other.PaddingId;
      }
      if (other.InputCount != 0) {
        InputCount = other.InputCount;
      }
      if (other.OutputCount != 0) {
        OutputCount = other.OutputCount;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            NodeId = input.ReadInt32();
            break;
          }
          case 26: {
            TypeName = input.ReadString();
            break;
          }
          case 32: {
            SocOpId = input.ReadInt32();
            break;
          }
          case 40: {
            PaddingId = input.ReadInt32();
            break;
          }
          case 48: {
            InputCount = input.ReadInt32();
            break;
          }
          case 56: {
            OutputCount = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

  public sealed partial class GraphTransferConstNodeInfo : pb::IMessage<GraphTransferConstNodeInfo> {
    private static readonly pb::MessageParser<GraphTransferConstNodeInfo> _parser = new pb::MessageParser<GraphTransferConstNodeInfo>(() => new GraphTransferConstNodeInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferConstNodeInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferConstNodeInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferConstNodeInfo(GraphTransferConstNodeInfo other) : this() {
      name_ = other.name_;
      nodeId_ = other.nodeId_;
      shape_ = other.shape_.Clone();
      data_ = other.data_;
      dtype_ = other.dtype_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferConstNodeInfo Clone() {
      return new GraphTransferConstNodeInfo(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "node_id" field.</summary>
    public const int NodeIdFieldNumber = 2;
    private int nodeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int NodeId {
      get { return nodeId_; }
      set {
        nodeId_ = value;
      }
    }

    /// <summary>Field number for the "shape" field.</summary>
    public const int ShapeFieldNumber = 3;
    private static readonly pb::FieldCodec<long> _repeated_shape_codec
        = pb::FieldCodec.ForInt64(26);
    private readonly pbc::RepeatedField<long> shape_ = new pbc::RepeatedField<long>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<long> Shape {
      get { return shape_; }
    }

    /// <summary>Field number for the "data" field.</summary>
    public const int DataFieldNumber = 4;
    private pb::ByteString data_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString Data {
      get { return data_; }
      set {
        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "dtype" field.</summary>
    public const int DtypeFieldNumber = 5;
    private global::Tensorflow.DataType dtype_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Tensorflow.DataType Dtype {
      get { return dtype_; }
      set {
        dtype_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferConstNodeInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferConstNodeInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (NodeId != other.NodeId) return false;
      if(!shape_.Equals(other.shape_)) return false;
      if (Data != other.Data) return false;
      if (Dtype != other.Dtype) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (NodeId != 0) hash ^= NodeId.GetHashCode();
      hash ^= shape_.GetHashCode();
      if (Data.Length != 0) hash ^= Data.GetHashCode();
      if (Dtype != 0) hash ^= Dtype.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (NodeId != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(NodeId);
      }
      shape_.WriteTo(output, _repeated_shape_codec);
      if (Data.Length != 0) {
        output.WriteRawTag(34);
        output.WriteBytes(Data);
      }
      if (Dtype != 0) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Dtype);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (NodeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NodeId);
      }
      size += shape_.CalculateSize(_repeated_shape_codec);
      if (Data.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
      }
      if (Dtype != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferConstNodeInfo other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.NodeId != 0) {
        NodeId = other.NodeId;
      }
      shape_.Add(other.shape_);
      if (other.Data.Length != 0) {
        Data = other.Data;
      }
      if (other.Dtype != 0) {
        Dtype = other.Dtype;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            NodeId = input.ReadInt32();
            break;
          }
          case 26:
          case 24: {
            shape_.AddEntriesFrom(input, _repeated_shape_codec);
            break;
          }
          case 34: {
            Data = input.ReadBytes();
            break;
          }
          case 40: {
            dtype_ = (global::Tensorflow.DataType) input.ReadEnum();
            break;
          }
        }
      }
    }

  }

  public sealed partial class GraphTransferNodeInputInfo : pb::IMessage<GraphTransferNodeInputInfo> {
    private static readonly pb::MessageParser<GraphTransferNodeInputInfo> _parser = new pb::MessageParser<GraphTransferNodeInputInfo>(() => new GraphTransferNodeInputInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferNodeInputInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInputInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInputInfo(GraphTransferNodeInputInfo other) : this() {
      nodeId_ = other.nodeId_;
      nodeInput_ = other.nodeInput_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeInputInfo Clone() {
      return new GraphTransferNodeInputInfo(this);
    }

    /// <summary>Field number for the "node_id" field.</summary>
    public const int NodeIdFieldNumber = 1;
    private int nodeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int NodeId {
      get { return nodeId_; }
      set {
        nodeId_ = value;
      }
    }

    /// <summary>Field number for the "node_input" field.</summary>
    public const int NodeInputFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferNodeInput> _repeated_nodeInput_codec
        = pb::FieldCodec.ForMessage(18, global::Tensorflow.GraphTransferNodeInput.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInput> nodeInput_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInput>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInput> NodeInput {
      get { return nodeInput_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferNodeInputInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferNodeInputInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NodeId != other.NodeId) return false;
      if(!nodeInput_.Equals(other.nodeInput_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (NodeId != 0) hash ^= NodeId.GetHashCode();
      hash ^= nodeInput_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (NodeId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(NodeId);
      }
      nodeInput_.WriteTo(output, _repeated_nodeInput_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (NodeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NodeId);
      }
      size += nodeInput_.CalculateSize(_repeated_nodeInput_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferNodeInputInfo other) {
      if (other == null) {
        return;
      }
      if (other.NodeId != 0) {
        NodeId = other.NodeId;
      }
      nodeInput_.Add(other.nodeInput_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            NodeId = input.ReadInt32();
            break;
          }
          case 18: {
            nodeInput_.AddEntriesFrom(input, _repeated_nodeInput_codec);
            break;
          }
        }
      }
    }

  }

  public sealed partial class GraphTransferNodeOutputInfo : pb::IMessage<GraphTransferNodeOutputInfo> {
    private static readonly pb::MessageParser<GraphTransferNodeOutputInfo> _parser = new pb::MessageParser<GraphTransferNodeOutputInfo>(() => new GraphTransferNodeOutputInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferNodeOutputInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeOutputInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeOutputInfo(GraphTransferNodeOutputInfo other) : this() {
      nodeId_ = other.nodeId_;
      maxByteSize_ = other.maxByteSize_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferNodeOutputInfo Clone() {
      return new GraphTransferNodeOutputInfo(this);
    }

    /// <summary>Field number for the "node_id" field.</summary>
    public const int NodeIdFieldNumber = 1;
    private int nodeId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int NodeId {
      get { return nodeId_; }
      set {
        nodeId_ = value;
      }
    }

    /// <summary>Field number for the "max_byte_size" field.</summary>
    public const int MaxByteSizeFieldNumber = 2;
    private static readonly pb::FieldCodec<int> _repeated_maxByteSize_codec
        = pb::FieldCodec.ForInt32(18);
    private readonly pbc::RepeatedField<int> maxByteSize_ = new pbc::RepeatedField<int>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<int> MaxByteSize {
      get { return maxByteSize_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferNodeOutputInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferNodeOutputInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NodeId != other.NodeId) return false;
      if(!maxByteSize_.Equals(other.maxByteSize_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (NodeId != 0) hash ^= NodeId.GetHashCode();
      hash ^= maxByteSize_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (NodeId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(NodeId);
      }
      maxByteSize_.WriteTo(output, _repeated_maxByteSize_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (NodeId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NodeId);
      }
      size += maxByteSize_.CalculateSize(_repeated_maxByteSize_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferNodeOutputInfo other) {
      if (other == null) {
        return;
      }
      if (other.NodeId != 0) {
        NodeId = other.NodeId;
      }
      maxByteSize_.Add(other.maxByteSize_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            NodeId = input.ReadInt32();
            break;
          }
          case 18:
          case 16: {
            maxByteSize_.AddEntriesFrom(input, _repeated_maxByteSize_codec);
            break;
          }
        }
      }
    }

  }

  public sealed partial class GraphTransferGraphInputNodeInfo : pb::IMessage<GraphTransferGraphInputNodeInfo> {
    private static readonly pb::MessageParser<GraphTransferGraphInputNodeInfo> _parser = new pb::MessageParser<GraphTransferGraphInputNodeInfo>(() => new GraphTransferGraphInputNodeInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferGraphInputNodeInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferGraphInputNodeInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferGraphInputNodeInfo(GraphTransferGraphInputNodeInfo other) : this() {
      name_ = other.name_;
      shape_ = other.shape_.Clone();
      dtype_ = other.dtype_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferGraphInputNodeInfo Clone() {
      return new GraphTransferGraphInputNodeInfo(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "shape" field.</summary>
    public const int ShapeFieldNumber = 2;
    private static readonly pb::FieldCodec<long> _repeated_shape_codec
        = pb::FieldCodec.ForInt64(18);
    private readonly pbc::RepeatedField<long> shape_ = new pbc::RepeatedField<long>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<long> Shape {
      get { return shape_; }
    }

    /// <summary>Field number for the "dtype" field.</summary>
    public const int DtypeFieldNumber = 3;
    private global::Tensorflow.DataType dtype_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Tensorflow.DataType Dtype {
      get { return dtype_; }
      set {
        dtype_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferGraphInputNodeInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferGraphInputNodeInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if(!shape_.Equals(other.shape_)) return false;
      if (Dtype != other.Dtype) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      hash ^= shape_.GetHashCode();
      if (Dtype != 0) hash ^= Dtype.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      shape_.WriteTo(output, _repeated_shape_codec);
      if (Dtype != 0) {
        output.WriteRawTag(24);
        output.WriteEnum((int) Dtype);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      size += shape_.CalculateSize(_repeated_shape_codec);
      if (Dtype != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferGraphInputNodeInfo other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      shape_.Add(other.shape_);
      if (other.Dtype != 0) {
        Dtype = other.Dtype;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18:
          case 16: {
            shape_.AddEntriesFrom(input, _repeated_shape_codec);
            break;
          }
          case 24: {
            dtype_ = (global::Tensorflow.DataType) input.ReadEnum();
            break;
          }
        }
      }
    }

  }

  public sealed partial class GraphTransferGraphOutputNodeInfo : pb::IMessage<GraphTransferGraphOutputNodeInfo> {
    private static readonly pb::MessageParser<GraphTransferGraphOutputNodeInfo> _parser = new pb::MessageParser<GraphTransferGraphOutputNodeInfo>(() => new GraphTransferGraphOutputNodeInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferGraphOutputNodeInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferGraphOutputNodeInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferGraphOutputNodeInfo(GraphTransferGraphOutputNodeInfo other) : this() {
      name_ = other.name_;
      shape_ = other.shape_.Clone();
      dtype_ = other.dtype_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferGraphOutputNodeInfo Clone() {
      return new GraphTransferGraphOutputNodeInfo(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "shape" field.</summary>
    public const int ShapeFieldNumber = 2;
    private static readonly pb::FieldCodec<long> _repeated_shape_codec
        = pb::FieldCodec.ForInt64(18);
    private readonly pbc::RepeatedField<long> shape_ = new pbc::RepeatedField<long>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<long> Shape {
      get { return shape_; }
    }

    /// <summary>Field number for the "dtype" field.</summary>
    public const int DtypeFieldNumber = 3;
    private global::Tensorflow.DataType dtype_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Tensorflow.DataType Dtype {
      get { return dtype_; }
      set {
        dtype_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferGraphOutputNodeInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferGraphOutputNodeInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if(!shape_.Equals(other.shape_)) return false;
      if (Dtype != other.Dtype) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      hash ^= shape_.GetHashCode();
      if (Dtype != 0) hash ^= Dtype.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      shape_.WriteTo(output, _repeated_shape_codec);
      if (Dtype != 0) {
        output.WriteRawTag(24);
        output.WriteEnum((int) Dtype);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      size += shape_.CalculateSize(_repeated_shape_codec);
      if (Dtype != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferGraphOutputNodeInfo other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      shape_.Add(other.shape_);
      if (other.Dtype != 0) {
        Dtype = other.Dtype;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18:
          case 16: {
            shape_.AddEntriesFrom(input, _repeated_shape_codec);
            break;
          }
          case 24: {
            dtype_ = (global::Tensorflow.DataType) input.ReadEnum();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  /// Protocol buffer representing a handle to a tensorflow resource. Handles are
  /// not valid across executions, but can be serialized back and forth from within
  /// a single run.
  /// </summary>
  public sealed partial class GraphTransferInfo : pb::IMessage<GraphTransferInfo> {
    private static readonly pb::MessageParser<GraphTransferInfo> _parser = new pb::MessageParser<GraphTransferInfo>(() => new GraphTransferInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GraphTransferInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Tensorflow.GraphTransferInfoReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferInfo(GraphTransferInfo other) : this() {
      nodeInfo_ = other.nodeInfo_.Clone();
      constNodeInfo_ = other.constNodeInfo_.Clone();
      nodeInputInfo_ = other.nodeInputInfo_.Clone();
      nodeOutputInfo_ = other.nodeOutputInfo_.Clone();
      graphInputNodeInfo_ = other.graphInputNodeInfo_.Clone();
      graphOutputNodeInfo_ = other.graphOutputNodeInfo_.Clone();
      destination_ = other.destination_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GraphTransferInfo Clone() {
      return new GraphTransferInfo(this);
    }

    /// <summary>Field number for the "node_info" field.</summary>
    public const int NodeInfoFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferNodeInfo> _repeated_nodeInfo_codec
        = pb::FieldCodec.ForMessage(10, global::Tensorflow.GraphTransferNodeInfo.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInfo> nodeInfo_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInfo> NodeInfo {
      get { return nodeInfo_; }
    }

    /// <summary>Field number for the "const_node_info" field.</summary>
    public const int ConstNodeInfoFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferConstNodeInfo> _repeated_constNodeInfo_codec
        = pb::FieldCodec.ForMessage(18, global::Tensorflow.GraphTransferConstNodeInfo.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferConstNodeInfo> constNodeInfo_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferConstNodeInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferConstNodeInfo> ConstNodeInfo {
      get { return constNodeInfo_; }
    }

    /// <summary>Field number for the "node_input_info" field.</summary>
    public const int NodeInputInfoFieldNumber = 3;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferNodeInputInfo> _repeated_nodeInputInfo_codec
        = pb::FieldCodec.ForMessage(26, global::Tensorflow.GraphTransferNodeInputInfo.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInputInfo> nodeInputInfo_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInputInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferNodeInputInfo> NodeInputInfo {
      get { return nodeInputInfo_; }
    }

    /// <summary>Field number for the "node_output_info" field.</summary>
    public const int NodeOutputInfoFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferNodeOutputInfo> _repeated_nodeOutputInfo_codec
        = pb::FieldCodec.ForMessage(34, global::Tensorflow.GraphTransferNodeOutputInfo.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferNodeOutputInfo> nodeOutputInfo_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferNodeOutputInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferNodeOutputInfo> NodeOutputInfo {
      get { return nodeOutputInfo_; }
    }

    /// <summary>Field number for the "graph_input_node_info" field.</summary>
    public const int GraphInputNodeInfoFieldNumber = 5;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferGraphInputNodeInfo> _repeated_graphInputNodeInfo_codec
        = pb::FieldCodec.ForMessage(42, global::Tensorflow.GraphTransferGraphInputNodeInfo.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferGraphInputNodeInfo> graphInputNodeInfo_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferGraphInputNodeInfo>();
    /// <summary>
    /// Input Node parameters of transferred graph
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferGraphInputNodeInfo> GraphInputNodeInfo {
      get { return graphInputNodeInfo_; }
    }

    /// <summary>Field number for the "graph_output_node_info" field.</summary>
    public const int GraphOutputNodeInfoFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Tensorflow.GraphTransferGraphOutputNodeInfo> _repeated_graphOutputNodeInfo_codec
        = pb::FieldCodec.ForMessage(50, global::Tensorflow.GraphTransferGraphOutputNodeInfo.Parser);
    private readonly pbc::RepeatedField<global::Tensorflow.GraphTransferGraphOutputNodeInfo> graphOutputNodeInfo_ = new pbc::RepeatedField<global::Tensorflow.GraphTransferGraphOutputNodeInfo>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Tensorflow.GraphTransferGraphOutputNodeInfo> GraphOutputNodeInfo {
      get { return graphOutputNodeInfo_; }
    }

    /// <summary>Field number for the "destination" field.</summary>
    public const int DestinationFieldNumber = 7;
    private global::Tensorflow.GraphTransferInfo.Types.Destination destination_ = 0;
    /// <summary>
    /// Destination of graph transfer
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Tensorflow.GraphTransferInfo.Types.Destination Destination {
      get { return destination_; }
      set {
        destination_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GraphTransferInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GraphTransferInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!nodeInfo_.Equals(other.nodeInfo_)) return false;
      if(!constNodeInfo_.Equals(other.constNodeInfo_)) return false;
      if(!nodeInputInfo_.Equals(other.nodeInputInfo_)) return false;
      if(!nodeOutputInfo_.Equals(other.nodeOutputInfo_)) return false;
      if(!graphInputNodeInfo_.Equals(other.graphInputNodeInfo_)) return false;
      if(!graphOutputNodeInfo_.Equals(other.graphOutputNodeInfo_)) return false;
      if (Destination != other.Destination) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= nodeInfo_.GetHashCode();
      hash ^= constNodeInfo_.GetHashCode();
      hash ^= nodeInputInfo_.GetHashCode();
      hash ^= nodeOutputInfo_.GetHashCode();
      hash ^= graphInputNodeInfo_.GetHashCode();
      hash ^= graphOutputNodeInfo_.GetHashCode();
      if (Destination != 0) hash ^= Destination.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      nodeInfo_.WriteTo(output, _repeated_nodeInfo_codec);
      constNodeInfo_.WriteTo(output, _repeated_constNodeInfo_codec);
      nodeInputInfo_.WriteTo(output, _repeated_nodeInputInfo_codec);
      nodeOutputInfo_.WriteTo(output, _repeated_nodeOutputInfo_codec);
      graphInputNodeInfo_.WriteTo(output, _repeated_graphInputNodeInfo_codec);
      graphOutputNodeInfo_.WriteTo(output, _repeated_graphOutputNodeInfo_codec);
      if (Destination != 0) {
        output.WriteRawTag(56);
        output.WriteEnum((int) Destination);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += nodeInfo_.CalculateSize(_repeated_nodeInfo_codec);
      size += constNodeInfo_.CalculateSize(_repeated_constNodeInfo_codec);
      size += nodeInputInfo_.CalculateSize(_repeated_nodeInputInfo_codec);
      size += nodeOutputInfo_.CalculateSize(_repeated_nodeOutputInfo_codec);
      size += graphInputNodeInfo_.CalculateSize(_repeated_graphInputNodeInfo_codec);
      size += graphOutputNodeInfo_.CalculateSize(_repeated_graphOutputNodeInfo_codec);
      if (Destination != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Destination);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GraphTransferInfo other) {
      if (other == null) {
        return;
      }
      nodeInfo_.Add(other.nodeInfo_);
      constNodeInfo_.Add(other.constNodeInfo_);
      nodeInputInfo_.Add(other.nodeInputInfo_);
      nodeOutputInfo_.Add(other.nodeOutputInfo_);
      graphInputNodeInfo_.Add(other.graphInputNodeInfo_);
      graphOutputNodeInfo_.Add(other.graphOutputNodeInfo_);
      if (other.Destination != 0) {
        Destination = other.Destination;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            nodeInfo_.AddEntriesFrom(input, _repeated_nodeInfo_codec);
            break;
          }
          case 18: {
            constNodeInfo_.AddEntriesFrom(input, _repeated_constNodeInfo_codec);
            break;
          }
          case 26: {
            nodeInputInfo_.AddEntriesFrom(input, _repeated_nodeInputInfo_codec);
            break;
          }
          case 34: {
            nodeOutputInfo_.AddEntriesFrom(input, _repeated_nodeOutputInfo_codec);
            break;
          }
          case 42: {
            graphInputNodeInfo_.AddEntriesFrom(input, _repeated_graphInputNodeInfo_codec);
            break;
          }
          case 50: {
            graphOutputNodeInfo_.AddEntriesFrom(input, _repeated_graphOutputNodeInfo_codec);
            break;
          }
          case 56: {
            destination_ = (global::Tensorflow.GraphTransferInfo.Types.Destination) input.ReadEnum();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the GraphTransferInfo message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum Destination {
        [pbr::OriginalName("NOP")] Nop = 0,
        [pbr::OriginalName("HEXAGON")] Hexagon = 1,
      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code
