// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: sdk.proto
#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 Com.Amazon.Whitewater.Auxproxy.Pbuffer {

  /// <summary>Holder for reflection information generated from sdk.proto</summary>
  public static partial class SdkReflection {

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

    static SdkReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CglzZGsucHJvdG8SJmNvbS5hbWF6b24ud2hpdGV3YXRlci5hdXhwcm94eS5w",
            "YnVmZmVyGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvIlkKDFByb2Nlc3NS",
            "ZWFkeRIYChBsb2dQYXRoc1RvVXBsb2FkGAEgAygJEgwKBHBvcnQYAiABKAUS",
            "IQoZbWF4Q29uY3VycmVudEdhbWVTZXNzaW9ucxgDIAEoBSIPCg1Qcm9jZXNz",
            "RW5kaW5nIk4KE0dhbWVTZXNzaW9uQWN0aXZhdGUSFQoNZ2FtZVNlc3Npb25J",
            "ZBgBIAEoCRISCgptYXhQbGF5ZXJzGAIgASgFEgwKBHBvcnQYAyABKAUiLQoU",
            "R2FtZVNlc3Npb25UZXJtaW5hdGUSFQoNZ2FtZVNlc3Npb25JZBgBIAEoCSJi",
            "CiFVcGRhdGVQbGF5ZXJTZXNzaW9uQ3JlYXRpb25Qb2xpY3kSFQoNZ2FtZVNl",
            "c3Npb25JZBgBIAEoCRImCh5uZXdQbGF5ZXJTZXNzaW9uQ3JlYXRpb25Qb2xp",
            "Y3kYAiABKAkiRQoTQWNjZXB0UGxheWVyU2Vzc2lvbhIVCg1nYW1lU2Vzc2lv",
            "bklkGAEgASgJEhcKD3BsYXllclNlc3Npb25JZBgCIAEoCSJFChNSZW1vdmVQ",
            "bGF5ZXJTZXNzaW9uEhUKDWdhbWVTZXNzaW9uSWQYASABKAkSFwoPcGxheWVy",
            "U2Vzc2lvbklkGAIgASgJIiQKDFJlcG9ydEhlYWx0aBIUCgxoZWFsdGhTdGF0",
            "dXMYASABKAgipgEKHURlc2NyaWJlUGxheWVyU2Vzc2lvbnNSZXF1ZXN0EhUK",
            "DWdhbWVTZXNzaW9uSWQYASABKAkSEAoIcGxheWVySWQYAiABKAkSFwoPcGxh",
            "eWVyU2Vzc2lvbklkGAMgASgJEiEKGXBsYXllclNlc3Npb25TdGF0dXNGaWx0",
            "ZXIYBCABKAkSEQoJbmV4dFRva2VuGAUgASgJEg0KBWxpbWl0GAYgASgFIqwB",
            "ChpCYWNrZmlsbE1hdGNobWFraW5nUmVxdWVzdBIQCgh0aWNrZXRJZBgBIAEo",
            "CRIWCg5nYW1lU2Vzc2lvbkFybhgCIAEoCRIjChttYXRjaG1ha2luZ0NvbmZp",
            "Z3VyYXRpb25Bcm4YAyABKAkSPwoHcGxheWVycxgEIAMoCzIuLmNvbS5hbWF6",
            "b24ud2hpdGV3YXRlci5hdXhwcm94eS5wYnVmZmVyLlBsYXllciJnChZTdG9w",
            "TWF0Y2htYWtpbmdSZXF1ZXN0EhAKCHRpY2tldElkGAEgASgJEhYKDmdhbWVT",
            "ZXNzaW9uQXJuGAIgASgJEiMKG21hdGNobWFraW5nQ29uZmlndXJhdGlvbkFy",
            "bhgDIAEoCSIYChZHZXRJbnN0YW5jZUNlcnRpZmljYXRlIkQKFUF1eFByb3h5",
            "VG9TZGtFbnZlbG9wZRIrCg1pbm5lcl9tZXNzYWdlGAEgASgLMhQuZ29vZ2xl",
            "LnByb3RvYnVmLkFueSJfChNBY3RpdmF0ZUdhbWVTZXNzaW9uEkgKC2dhbWVT",
            "ZXNzaW9uGAEgASgLMjMuY29tLmFtYXpvbi53aGl0ZXdhdGVyLmF1eHByb3h5",
            "LnBidWZmZXIuR2FtZVNlc3Npb24iKwoQVGVybWluYXRlUHJvY2VzcxIXCg90",
            "ZXJtaW5hdGlvblRpbWUYASABKAMiggEKHkRlc2NyaWJlUGxheWVyU2Vzc2lv",
            "bnNSZXNwb25zZRIRCgluZXh0VG9rZW4YASABKAkSTQoOcGxheWVyU2Vzc2lv",
            "bnMYAiADKAsyNS5jb20uYW1hem9uLndoaXRld2F0ZXIuYXV4cHJveHkucGJ1",
            "ZmZlci5QbGF5ZXJTZXNzaW9uIo0BChFVcGRhdGVHYW1lU2Vzc2lvbhJICgtn",
            "YW1lU2Vzc2lvbhgBIAEoCzIzLmNvbS5hbWF6b24ud2hpdGV3YXRlci5hdXhw",
            "cm94eS5wYnVmZmVyLkdhbWVTZXNzaW9uEhQKDHVwZGF0ZVJlYXNvbhgCIAEo",
            "CRIYChBiYWNrZmlsbFRpY2tldElkGAMgASgJIp4BCh5HZXRJbnN0YW5jZUNl",
            "cnRpZmljYXRlUmVzcG9uc2USFwoPY2VydGlmaWNhdGVQYXRoGAEgASgJEhwK",
            "FGNlcnRpZmljYXRlQ2hhaW5QYXRoGAIgASgJEhYKDnByaXZhdGVLZXlQYXRo",
            "GAMgASgJEhAKCGhvc3ROYW1lGAQgASgJEhsKE3Jvb3RDZXJ0aWZpY2F0ZVBh",
            "dGgYBSABKAkiLwobQmFja2ZpbGxNYXRjaG1ha2luZ1Jlc3BvbnNlEhAKCHRp",
            "Y2tldElkGAEgASgJIoYBCghSZXNwb25zZRJHCgZzdGF0dXMYASABKA4yNy5j",
            "b20uYW1hem9uLndoaXRld2F0ZXIuYXV4cHJveHkucGJ1ZmZlci5SZXNwb25z",
            "ZS5TdGF0dXMSFAoMZXJyb3JNZXNzYWdlGAIgASgJIhsKBlN0YXR1cxIGCgJP",
            "SxAAEgkKBUVSUk9SEAEivwEKEEdhbWVMaWZ0UmVzcG9uc2USTwoGc3RhdHVz",
            "GAEgASgOMj8uY29tLmFtYXpvbi53aGl0ZXdhdGVyLmF1eHByb3h5LnBidWZm",
            "ZXIuR2FtZUxpZnRSZXNwb25zZS5TdGF0dXMSFAoMcmVzcG9uc2VEYXRhGAIg",
            "ASgJEhQKDGVycm9yTWVzc2FnZRgDIAEoCSIuCgZTdGF0dXMSBgoCT0sQABIN",
            "CglFUlJPUl80MDAQARINCglFUlJPUl81MDAQAiKaAgoLR2FtZVNlc3Npb24S",
            "FQoNZ2FtZVNlc3Npb25JZBgBIAEoCRIPCgdmbGVldElkGAIgASgJEgwKBG5h",
            "bWUYAyABKAkSEgoKbWF4UGxheWVycxgEIAEoBRIQCghqb2luYWJsZRgFIAEo",
            "CBJMCg5nYW1lUHJvcGVydGllcxgGIAMoCzI0LmNvbS5hbWF6b24ud2hpdGV3",
            "YXRlci5hdXhwcm94eS5wYnVmZmVyLkdhbWVQcm9wZXJ0eRIRCglpcEFkZHJl",
            "c3MYByABKAkSDAoEcG9ydBgIIAEoBRIXCg9nYW1lU2Vzc2lvbkRhdGEYCSAB",
            "KAkSFgoObWF0Y2htYWtlckRhdGEYCiABKAkSDwoHZG5zTmFtZRgLIAEoCSIq",
            "CgxHYW1lUHJvcGVydHkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIucB",
            "Cg1QbGF5ZXJTZXNzaW9uEhcKD3BsYXllclNlc3Npb25JZBgBIAEoCRIQCghw",
            "bGF5ZXJJZBgCIAEoCRIVCg1nYW1lU2Vzc2lvbklkGAMgASgJEg8KB2ZsZWV0",
            "SWQYBCABKAkSEQoJaXBBZGRyZXNzGAUgASgJEg4KBnN0YXR1cxgGIAEoCRIU",
            "CgxjcmVhdGlvblRpbWUYByABKAMSFwoPdGVybWluYXRpb25UaW1lGAggASgD",
            "EgwKBHBvcnQYCSABKAUSEgoKcGxheWVyRGF0YRgKIAEoCRIPCgdkbnNOYW1l",
            "GAsgASgJIoMDCgZQbGF5ZXISEAoIcGxheWVySWQYASABKAkSXgoQcGxheWVy",
            "QXR0cmlidXRlcxgCIAMoCzJELmNvbS5hbWF6b24ud2hpdGV3YXRlci5hdXhw",
            "cm94eS5wYnVmZmVyLlBsYXllci5QbGF5ZXJBdHRyaWJ1dGVzRW50cnkSDAoE",
            "dGVhbRgDIAEoCRJUCgtsYXRlbmN5SW5NcxgEIAMoCzI/LmNvbS5hbWF6b24u",
            "d2hpdGV3YXRlci5hdXhwcm94eS5wYnVmZmVyLlBsYXllci5MYXRlbmN5SW5N",
            "c0VudHJ5Gm8KFVBsYXllckF0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkS",
            "RQoFdmFsdWUYAiABKAsyNi5jb20uYW1hem9uLndoaXRld2F0ZXIuYXV4cHJv",
            "eHkucGJ1ZmZlci5BdHRyaWJ1dGVWYWx1ZToCOAEaMgoQTGF0ZW5jeUluTXNF",
            "bnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBIroBCg5BdHRy",
            "aWJ1dGVWYWx1ZRIMCgR0eXBlGAEgASgFEgkKAVMYAiABKAkSCQoBThgDIAEo",
            "ARIKCgJTTBgEIAMoCRJMCgNTRE0YBSADKAsyPy5jb20uYW1hem9uLndoaXRl",
            "d2F0ZXIuYXV4cHJveHkucGJ1ZmZlci5BdHRyaWJ1dGVWYWx1ZS5TRE1FbnRy",
            "eRoqCghTRE1FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgB",
            "YgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.AnyReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ProcessReady), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ProcessReady.Parser, new[]{ "LogPathsToUpload", "Port", "MaxConcurrentGameSessions" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ProcessEnding), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ProcessEnding.Parser, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSessionActivate), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSessionActivate.Parser, new[]{ "GameSessionId", "MaxPlayers", "Port" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSessionTerminate), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSessionTerminate.Parser, new[]{ "GameSessionId" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.UpdatePlayerSessionCreationPolicy), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.UpdatePlayerSessionCreationPolicy.Parser, new[]{ "GameSessionId", "NewPlayerSessionCreationPolicy" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AcceptPlayerSession), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AcceptPlayerSession.Parser, new[]{ "GameSessionId", "PlayerSessionId" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.RemovePlayerSession), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.RemovePlayerSession.Parser, new[]{ "GameSessionId", "PlayerSessionId" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ReportHealth), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ReportHealth.Parser, new[]{ "HealthStatus" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.DescribePlayerSessionsRequest), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.DescribePlayerSessionsRequest.Parser, new[]{ "GameSessionId", "PlayerId", "PlayerSessionId", "PlayerSessionStatusFilter", "NextToken", "Limit" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.BackfillMatchmakingRequest), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.BackfillMatchmakingRequest.Parser, new[]{ "TicketId", "GameSessionArn", "MatchmakingConfigurationArn", "Players" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.StopMatchmakingRequest), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.StopMatchmakingRequest.Parser, new[]{ "TicketId", "GameSessionArn", "MatchmakingConfigurationArn" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GetInstanceCertificate), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GetInstanceCertificate.Parser, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AuxProxyToSdkEnvelope), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AuxProxyToSdkEnvelope.Parser, new[]{ "InnerMessage" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ActivateGameSession), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.ActivateGameSession.Parser, new[]{ "GameSession" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.TerminateProcess), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.TerminateProcess.Parser, new[]{ "TerminationTime" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.DescribePlayerSessionsResponse), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.DescribePlayerSessionsResponse.Parser, new[]{ "NextToken", "PlayerSessions" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.UpdateGameSession), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.UpdateGameSession.Parser, new[]{ "GameSession", "UpdateReason", "BackfillTicketId" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GetInstanceCertificateResponse), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GetInstanceCertificateResponse.Parser, new[]{ "CertificatePath", "CertificateChainPath", "PrivateKeyPath", "HostName", "RootCertificatePath" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.BackfillMatchmakingResponse), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.BackfillMatchmakingResponse.Parser, new[]{ "TicketId" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Response), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Response.Parser, new[]{ "Status", "ErrorMessage" }, null, new[]{ typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Response.Types.Status) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameLiftResponse), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameLiftResponse.Parser, new[]{ "Status", "ResponseData", "ErrorMessage" }, null, new[]{ typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameLiftResponse.Types.Status) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession.Parser, new[]{ "GameSessionId", "FleetId", "Name", "MaxPlayers", "Joinable", "GameProperties", "IpAddress", "Port", "GameSessionData", "MatchmakerData", "DnsName" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty.Parser, new[]{ "Key", "Value" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession.Parser, new[]{ "PlayerSessionId", "PlayerId", "GameSessionId", "FleetId", "IpAddress", "Status", "CreationTime", "TerminationTime", "Port", "PlayerData", "DnsName" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player.Parser, new[]{ "PlayerId", "PlayerAttributes", "Team", "LatencyInMs" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, }),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue), global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue.Parser, new[]{ "Type", "S", "N", "SL", "SDM" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, })
          }));
    }
    #endregion

  }
  #region Messages
  /// <summary>
  ///SDK --> AuxProxy
  /// </summary>
  public sealed partial class ProcessReady : pb::IMessage<ProcessReady> {
    private static readonly pb::MessageParser<ProcessReady> _parser = new pb::MessageParser<ProcessReady>(() => new ProcessReady());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<ProcessReady> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[0]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ProcessReady(ProcessReady other) : this() {
      logPathsToUpload_ = other.logPathsToUpload_.Clone();
      port_ = other.port_;
      maxConcurrentGameSessions_ = other.maxConcurrentGameSessions_;
    }

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

    /// <summary>Field number for the "logPathsToUpload" field.</summary>
    public const int LogPathsToUploadFieldNumber = 1;
    private static readonly pb::FieldCodec<string> _repeated_logPathsToUpload_codec
        = pb::FieldCodec.ForString(10);
    private readonly pbc::RepeatedField<string> logPathsToUpload_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<string> LogPathsToUpload {
      get { return logPathsToUpload_; }
    }

    /// <summary>Field number for the "port" field.</summary>
    public const int PortFieldNumber = 2;
    private int port_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Port {
      get { return port_; }
      set {
        port_ = value;
      }
    }

    /// <summary>Field number for the "maxConcurrentGameSessions" field.</summary>
    public const int MaxConcurrentGameSessionsFieldNumber = 3;
    private int maxConcurrentGameSessions_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int MaxConcurrentGameSessions {
      get { return maxConcurrentGameSessions_; }
      set {
        maxConcurrentGameSessions_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ProcessReady other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!logPathsToUpload_.Equals(other.logPathsToUpload_)) return false;
      if (Port != other.Port) return false;
      if (MaxConcurrentGameSessions != other.MaxConcurrentGameSessions) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= logPathsToUpload_.GetHashCode();
      if (Port != 0) hash ^= Port.GetHashCode();
      if (MaxConcurrentGameSessions != 0) hash ^= MaxConcurrentGameSessions.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) {
      logPathsToUpload_.WriteTo(output, _repeated_logPathsToUpload_codec);
      if (Port != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(Port);
      }
      if (MaxConcurrentGameSessions != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(MaxConcurrentGameSessions);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += logPathsToUpload_.CalculateSize(_repeated_logPathsToUpload_codec);
      if (Port != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Port);
      }
      if (MaxConcurrentGameSessions != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxConcurrentGameSessions);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ProcessReady other) {
      if (other == null) {
        return;
      }
      logPathsToUpload_.Add(other.logPathsToUpload_);
      if (other.Port != 0) {
        Port = other.Port;
      }
      if (other.MaxConcurrentGameSessions != 0) {
        MaxConcurrentGameSessions = other.MaxConcurrentGameSessions;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            logPathsToUpload_.AddEntriesFrom(input, _repeated_logPathsToUpload_codec);
            break;
          }
          case 16: {
            Port = input.ReadInt32();
            break;
          }
          case 24: {
            MaxConcurrentGameSessions = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[1]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ProcessEnding(ProcessEnding other) : this() {
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ProcessEnding other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      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) {
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ProcessEnding other) {
      if (other == null) {
        return;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[2]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GameSessionActivate(GameSessionActivate other) : this() {
      gameSessionId_ = other.gameSessionId_;
      maxPlayers_ = other.maxPlayers_;
      port_ = other.port_;
    }

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

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

    /// <summary>Field number for the "maxPlayers" field.</summary>
    public const int MaxPlayersFieldNumber = 2;
    private int maxPlayers_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int MaxPlayers {
      get { return maxPlayers_; }
      set {
        maxPlayers_ = value;
      }
    }

    /// <summary>Field number for the "port" field.</summary>
    public const int PortFieldNumber = 3;
    private int port_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Port {
      get { return port_; }
      set {
        port_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GameSessionActivate other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameSessionId != other.GameSessionId) return false;
      if (MaxPlayers != other.MaxPlayers) return false;
      if (Port != other.Port) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (MaxPlayers != 0) hash ^= MaxPlayers.GetHashCode();
      if (Port != 0) hash ^= Port.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
      if (MaxPlayers != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(MaxPlayers);
      }
      if (Port != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(Port);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (MaxPlayers != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxPlayers);
      }
      if (Port != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Port);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GameSessionActivate other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.MaxPlayers != 0) {
        MaxPlayers = other.MaxPlayers;
      }
      if (other.Port != 0) {
        Port = other.Port;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
          case 16: {
            MaxPlayers = input.ReadInt32();
            break;
          }
          case 24: {
            Port = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[3]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GameSessionTerminate(GameSessionTerminate other) : this() {
      gameSessionId_ = other.gameSessionId_;
    }

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GameSessionTerminate other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[4]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UpdatePlayerSessionCreationPolicy(UpdatePlayerSessionCreationPolicy other) : this() {
      gameSessionId_ = other.gameSessionId_;
      newPlayerSessionCreationPolicy_ = other.newPlayerSessionCreationPolicy_;
    }

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

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

    /// <summary>Field number for the "newPlayerSessionCreationPolicy" field.</summary>
    public const int NewPlayerSessionCreationPolicyFieldNumber = 2;
    private string newPlayerSessionCreationPolicy_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string NewPlayerSessionCreationPolicy {
      get { return newPlayerSessionCreationPolicy_; }
      set {
        newPlayerSessionCreationPolicy_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UpdatePlayerSessionCreationPolicy other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameSessionId != other.GameSessionId) return false;
      if (NewPlayerSessionCreationPolicy != other.NewPlayerSessionCreationPolicy) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (NewPlayerSessionCreationPolicy.Length != 0) hash ^= NewPlayerSessionCreationPolicy.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
      if (NewPlayerSessionCreationPolicy.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NewPlayerSessionCreationPolicy);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (NewPlayerSessionCreationPolicy.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NewPlayerSessionCreationPolicy);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UpdatePlayerSessionCreationPolicy other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.NewPlayerSessionCreationPolicy.Length != 0) {
        NewPlayerSessionCreationPolicy = other.NewPlayerSessionCreationPolicy;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
          case 18: {
            NewPlayerSessionCreationPolicy = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[5]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public AcceptPlayerSession(AcceptPlayerSession other) : this() {
      gameSessionId_ = other.gameSessionId_;
      playerSessionId_ = other.playerSessionId_;
    }

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

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

    /// <summary>Field number for the "playerSessionId" field.</summary>
    public const int PlayerSessionIdFieldNumber = 2;
    private string playerSessionId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PlayerSessionId {
      get { return playerSessionId_; }
      set {
        playerSessionId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(AcceptPlayerSession other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameSessionId != other.GameSessionId) return false;
      if (PlayerSessionId != other.PlayerSessionId) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (PlayerSessionId.Length != 0) hash ^= PlayerSessionId.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
      if (PlayerSessionId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PlayerSessionId);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (PlayerSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerSessionId);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(AcceptPlayerSession other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.PlayerSessionId.Length != 0) {
        PlayerSessionId = other.PlayerSessionId;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
          case 18: {
            PlayerSessionId = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[6]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public RemovePlayerSession(RemovePlayerSession other) : this() {
      gameSessionId_ = other.gameSessionId_;
      playerSessionId_ = other.playerSessionId_;
    }

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

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

    /// <summary>Field number for the "playerSessionId" field.</summary>
    public const int PlayerSessionIdFieldNumber = 2;
    private string playerSessionId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PlayerSessionId {
      get { return playerSessionId_; }
      set {
        playerSessionId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(RemovePlayerSession other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameSessionId != other.GameSessionId) return false;
      if (PlayerSessionId != other.PlayerSessionId) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (PlayerSessionId.Length != 0) hash ^= PlayerSessionId.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
      if (PlayerSessionId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PlayerSessionId);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (PlayerSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerSessionId);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(RemovePlayerSession other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.PlayerSessionId.Length != 0) {
        PlayerSessionId = other.PlayerSessionId;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
          case 18: {
            PlayerSessionId = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[7]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ReportHealth(ReportHealth other) : this() {
      healthStatus_ = other.healthStatus_;
    }

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

    /// <summary>Field number for the "healthStatus" field.</summary>
    public const int HealthStatusFieldNumber = 1;
    private bool healthStatus_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool HealthStatus {
      get { return healthStatus_; }
      set {
        healthStatus_ = value;
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (HealthStatus != false) hash ^= HealthStatus.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 (HealthStatus != false) {
        output.WriteRawTag(8);
        output.WriteBool(HealthStatus);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (HealthStatus != false) {
        size += 1 + 1;
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ReportHealth other) {
      if (other == null) {
        return;
      }
      if (other.HealthStatus != false) {
        HealthStatus = other.HealthStatus;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            HealthStatus = input.ReadBool();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[8]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public DescribePlayerSessionsRequest(DescribePlayerSessionsRequest other) : this() {
      gameSessionId_ = other.gameSessionId_;
      playerId_ = other.playerId_;
      playerSessionId_ = other.playerSessionId_;
      playerSessionStatusFilter_ = other.playerSessionStatusFilter_;
      nextToken_ = other.nextToken_;
      limit_ = other.limit_;
    }

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

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

    /// <summary>Field number for the "playerId" field.</summary>
    public const int PlayerIdFieldNumber = 2;
    private string playerId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PlayerId {
      get { return playerId_; }
      set {
        playerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "playerSessionStatusFilter" field.</summary>
    public const int PlayerSessionStatusFilterFieldNumber = 4;
    private string playerSessionStatusFilter_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PlayerSessionStatusFilter {
      get { return playerSessionStatusFilter_; }
      set {
        playerSessionStatusFilter_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "nextToken" field.</summary>
    public const int NextTokenFieldNumber = 5;
    private string nextToken_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string NextToken {
      get { return nextToken_; }
      set {
        nextToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "limit" field.</summary>
    public const int LimitFieldNumber = 6;
    private int limit_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Limit {
      get { return limit_; }
      set {
        limit_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(DescribePlayerSessionsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameSessionId != other.GameSessionId) return false;
      if (PlayerId != other.PlayerId) return false;
      if (PlayerSessionId != other.PlayerSessionId) return false;
      if (PlayerSessionStatusFilter != other.PlayerSessionStatusFilter) return false;
      if (NextToken != other.NextToken) return false;
      if (Limit != other.Limit) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (PlayerId.Length != 0) hash ^= PlayerId.GetHashCode();
      if (PlayerSessionId.Length != 0) hash ^= PlayerSessionId.GetHashCode();
      if (PlayerSessionStatusFilter.Length != 0) hash ^= PlayerSessionStatusFilter.GetHashCode();
      if (NextToken.Length != 0) hash ^= NextToken.GetHashCode();
      if (Limit != 0) hash ^= Limit.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
      if (PlayerId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PlayerId);
      }
      if (PlayerSessionId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PlayerSessionId);
      }
      if (PlayerSessionStatusFilter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(PlayerSessionStatusFilter);
      }
      if (NextToken.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(NextToken);
      }
      if (Limit != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(Limit);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (PlayerId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerId);
      }
      if (PlayerSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerSessionId);
      }
      if (PlayerSessionStatusFilter.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerSessionStatusFilter);
      }
      if (NextToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextToken);
      }
      if (Limit != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Limit);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(DescribePlayerSessionsRequest other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.PlayerId.Length != 0) {
        PlayerId = other.PlayerId;
      }
      if (other.PlayerSessionId.Length != 0) {
        PlayerSessionId = other.PlayerSessionId;
      }
      if (other.PlayerSessionStatusFilter.Length != 0) {
        PlayerSessionStatusFilter = other.PlayerSessionStatusFilter;
      }
      if (other.NextToken.Length != 0) {
        NextToken = other.NextToken;
      }
      if (other.Limit != 0) {
        Limit = other.Limit;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
          case 18: {
            PlayerId = input.ReadString();
            break;
          }
          case 26: {
            PlayerSessionId = input.ReadString();
            break;
          }
          case 34: {
            PlayerSessionStatusFilter = input.ReadString();
            break;
          }
          case 42: {
            NextToken = input.ReadString();
            break;
          }
          case 48: {
            Limit = input.ReadInt32();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[9]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public BackfillMatchmakingRequest(BackfillMatchmakingRequest other) : this() {
      ticketId_ = other.ticketId_;
      gameSessionArn_ = other.gameSessionArn_;
      matchmakingConfigurationArn_ = other.matchmakingConfigurationArn_;
      players_ = other.players_.Clone();
    }

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

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

    /// <summary>Field number for the "gameSessionArn" field.</summary>
    public const int GameSessionArnFieldNumber = 2;
    private string gameSessionArn_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string GameSessionArn {
      get { return gameSessionArn_; }
      set {
        gameSessionArn_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "players" field.</summary>
    public const int PlayersFieldNumber = 4;
    private static readonly pb::FieldCodec<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player> _repeated_players_codec
        = pb::FieldCodec.ForMessage(34, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player.Parser);
    private readonly pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player> players_ = new pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Player> Players {
      get { return players_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(BackfillMatchmakingRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (TicketId != other.TicketId) return false;
      if (GameSessionArn != other.GameSessionArn) return false;
      if (MatchmakingConfigurationArn != other.MatchmakingConfigurationArn) return false;
      if(!players_.Equals(other.players_)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (TicketId.Length != 0) hash ^= TicketId.GetHashCode();
      if (GameSessionArn.Length != 0) hash ^= GameSessionArn.GetHashCode();
      if (MatchmakingConfigurationArn.Length != 0) hash ^= MatchmakingConfigurationArn.GetHashCode();
      hash ^= players_.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 (TicketId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(TicketId);
      }
      if (GameSessionArn.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(GameSessionArn);
      }
      if (MatchmakingConfigurationArn.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(MatchmakingConfigurationArn);
      }
      players_.WriteTo(output, _repeated_players_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (TicketId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TicketId);
      }
      if (GameSessionArn.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionArn);
      }
      if (MatchmakingConfigurationArn.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MatchmakingConfigurationArn);
      }
      size += players_.CalculateSize(_repeated_players_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(BackfillMatchmakingRequest other) {
      if (other == null) {
        return;
      }
      if (other.TicketId.Length != 0) {
        TicketId = other.TicketId;
      }
      if (other.GameSessionArn.Length != 0) {
        GameSessionArn = other.GameSessionArn;
      }
      if (other.MatchmakingConfigurationArn.Length != 0) {
        MatchmakingConfigurationArn = other.MatchmakingConfigurationArn;
      }
      players_.Add(other.players_);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            TicketId = input.ReadString();
            break;
          }
          case 18: {
            GameSessionArn = input.ReadString();
            break;
          }
          case 26: {
            MatchmakingConfigurationArn = input.ReadString();
            break;
          }
          case 34: {
            players_.AddEntriesFrom(input, _repeated_players_codec);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[10]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public StopMatchmakingRequest(StopMatchmakingRequest other) : this() {
      ticketId_ = other.ticketId_;
      gameSessionArn_ = other.gameSessionArn_;
      matchmakingConfigurationArn_ = other.matchmakingConfigurationArn_;
    }

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

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

    /// <summary>Field number for the "gameSessionArn" field.</summary>
    public const int GameSessionArnFieldNumber = 2;
    private string gameSessionArn_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string GameSessionArn {
      get { return gameSessionArn_; }
      set {
        gameSessionArn_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(StopMatchmakingRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (TicketId != other.TicketId) return false;
      if (GameSessionArn != other.GameSessionArn) return false;
      if (MatchmakingConfigurationArn != other.MatchmakingConfigurationArn) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (TicketId.Length != 0) hash ^= TicketId.GetHashCode();
      if (GameSessionArn.Length != 0) hash ^= GameSessionArn.GetHashCode();
      if (MatchmakingConfigurationArn.Length != 0) hash ^= MatchmakingConfigurationArn.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 (TicketId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(TicketId);
      }
      if (GameSessionArn.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(GameSessionArn);
      }
      if (MatchmakingConfigurationArn.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(MatchmakingConfigurationArn);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (TicketId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TicketId);
      }
      if (GameSessionArn.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionArn);
      }
      if (MatchmakingConfigurationArn.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MatchmakingConfigurationArn);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(StopMatchmakingRequest other) {
      if (other == null) {
        return;
      }
      if (other.TicketId.Length != 0) {
        TicketId = other.TicketId;
      }
      if (other.GameSessionArn.Length != 0) {
        GameSessionArn = other.GameSessionArn;
      }
      if (other.MatchmakingConfigurationArn.Length != 0) {
        MatchmakingConfigurationArn = other.MatchmakingConfigurationArn;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            TicketId = input.ReadString();
            break;
          }
          case 18: {
            GameSessionArn = input.ReadString();
            break;
          }
          case 26: {
            MatchmakingConfigurationArn = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[11]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetInstanceCertificate(GetInstanceCertificate other) : this() {
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GetInstanceCertificate other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      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) {
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GetInstanceCertificate other) {
      if (other == null) {
        return;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
        }
      }
    }

  }

  /// <summary>
  ///AuxProxy --> Sdk
  ///This helps with routing the messages to the proper handlers in the SDKs.
  /// </summary>
  public sealed partial class AuxProxyToSdkEnvelope : pb::IMessage<AuxProxyToSdkEnvelope> {
    private static readonly pb::MessageParser<AuxProxyToSdkEnvelope> _parser = new pb::MessageParser<AuxProxyToSdkEnvelope>(() => new AuxProxyToSdkEnvelope());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<AuxProxyToSdkEnvelope> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[12]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public AuxProxyToSdkEnvelope(AuxProxyToSdkEnvelope other) : this() {
      InnerMessage = other.innerMessage_ != null ? other.InnerMessage.Clone() : null;
    }

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

    /// <summary>Field number for the "inner_message" field.</summary>
    public const int InnerMessageFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.Any innerMessage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Google.Protobuf.WellKnownTypes.Any InnerMessage {
      get { return innerMessage_; }
      set {
        innerMessage_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(AuxProxyToSdkEnvelope other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(InnerMessage, other.InnerMessage)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (innerMessage_ != null) hash ^= InnerMessage.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 (innerMessage_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(InnerMessage);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (innerMessage_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(InnerMessage);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(AuxProxyToSdkEnvelope other) {
      if (other == null) {
        return;
      }
      if (other.innerMessage_ != null) {
        if (innerMessage_ == null) {
          innerMessage_ = new global::Google.Protobuf.WellKnownTypes.Any();
        }
        InnerMessage.MergeFrom(other.InnerMessage);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (innerMessage_ == null) {
              innerMessage_ = new global::Google.Protobuf.WellKnownTypes.Any();
            }
            input.ReadMessage(innerMessage_);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[13]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ActivateGameSession(ActivateGameSession other) : this() {
      GameSession = other.gameSession_ != null ? other.GameSession.Clone() : null;
    }

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

    /// <summary>Field number for the "gameSession" field.</summary>
    public const int GameSessionFieldNumber = 1;
    private global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession gameSession_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession GameSession {
      get { return gameSession_; }
      set {
        gameSession_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ActivateGameSession other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(GameSession, other.GameSession)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (gameSession_ != null) hash ^= GameSession.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 (gameSession_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(GameSession);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (gameSession_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(GameSession);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ActivateGameSession other) {
      if (other == null) {
        return;
      }
      if (other.gameSession_ != null) {
        if (gameSession_ == null) {
          gameSession_ = new global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession();
        }
        GameSession.MergeFrom(other.GameSession);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (gameSession_ == null) {
              gameSession_ = new global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession();
            }
            input.ReadMessage(gameSession_);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[14]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TerminateProcess(TerminateProcess other) : this() {
      terminationTime_ = other.terminationTime_;
    }

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

    /// <summary>Field number for the "terminationTime" field.</summary>
    public const int TerminationTimeFieldNumber = 1;
    private long terminationTime_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long TerminationTime {
      get { return terminationTime_; }
      set {
        terminationTime_ = value;
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (TerminationTime != 0L) hash ^= TerminationTime.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 (TerminationTime != 0L) {
        output.WriteRawTag(8);
        output.WriteInt64(TerminationTime);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (TerminationTime != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(TerminationTime);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(TerminateProcess other) {
      if (other == null) {
        return;
      }
      if (other.TerminationTime != 0L) {
        TerminationTime = other.TerminationTime;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            TerminationTime = input.ReadInt64();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[15]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public DescribePlayerSessionsResponse(DescribePlayerSessionsResponse other) : this() {
      nextToken_ = other.nextToken_;
      playerSessions_ = other.playerSessions_.Clone();
    }

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

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

    /// <summary>Field number for the "playerSessions" field.</summary>
    public const int PlayerSessionsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession> _repeated_playerSessions_codec
        = pb::FieldCodec.ForMessage(18, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession.Parser);
    private readonly pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession> playerSessions_ = new pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.PlayerSession> PlayerSessions {
      get { return playerSessions_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(DescribePlayerSessionsResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextToken != other.NextToken) return false;
      if(!playerSessions_.Equals(other.playerSessions_)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (NextToken.Length != 0) hash ^= NextToken.GetHashCode();
      hash ^= playerSessions_.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 (NextToken.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(NextToken);
      }
      playerSessions_.WriteTo(output, _repeated_playerSessions_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (NextToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextToken);
      }
      size += playerSessions_.CalculateSize(_repeated_playerSessions_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(DescribePlayerSessionsResponse other) {
      if (other == null) {
        return;
      }
      if (other.NextToken.Length != 0) {
        NextToken = other.NextToken;
      }
      playerSessions_.Add(other.playerSessions_);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            NextToken = input.ReadString();
            break;
          }
          case 18: {
            playerSessions_.AddEntriesFrom(input, _repeated_playerSessions_codec);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[16]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UpdateGameSession(UpdateGameSession other) : this() {
      GameSession = other.gameSession_ != null ? other.GameSession.Clone() : null;
      updateReason_ = other.updateReason_;
      backfillTicketId_ = other.backfillTicketId_;
    }

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

    /// <summary>Field number for the "gameSession" field.</summary>
    public const int GameSessionFieldNumber = 1;
    private global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession gameSession_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession GameSession {
      get { return gameSession_; }
      set {
        gameSession_ = value;
      }
    }

    /// <summary>Field number for the "updateReason" field.</summary>
    public const int UpdateReasonFieldNumber = 2;
    private string updateReason_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string UpdateReason {
      get { return updateReason_; }
      set {
        updateReason_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UpdateGameSession other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(GameSession, other.GameSession)) return false;
      if (UpdateReason != other.UpdateReason) return false;
      if (BackfillTicketId != other.BackfillTicketId) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (gameSession_ != null) hash ^= GameSession.GetHashCode();
      if (UpdateReason.Length != 0) hash ^= UpdateReason.GetHashCode();
      if (BackfillTicketId.Length != 0) hash ^= BackfillTicketId.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 (gameSession_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(GameSession);
      }
      if (UpdateReason.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(UpdateReason);
      }
      if (BackfillTicketId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(BackfillTicketId);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (gameSession_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(GameSession);
      }
      if (UpdateReason.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(UpdateReason);
      }
      if (BackfillTicketId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(BackfillTicketId);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UpdateGameSession other) {
      if (other == null) {
        return;
      }
      if (other.gameSession_ != null) {
        if (gameSession_ == null) {
          gameSession_ = new global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession();
        }
        GameSession.MergeFrom(other.GameSession);
      }
      if (other.UpdateReason.Length != 0) {
        UpdateReason = other.UpdateReason;
      }
      if (other.BackfillTicketId.Length != 0) {
        BackfillTicketId = other.BackfillTicketId;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (gameSession_ == null) {
              gameSession_ = new global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameSession();
            }
            input.ReadMessage(gameSession_);
            break;
          }
          case 18: {
            UpdateReason = input.ReadString();
            break;
          }
          case 26: {
            BackfillTicketId = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[17]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetInstanceCertificateResponse(GetInstanceCertificateResponse other) : this() {
      certificatePath_ = other.certificatePath_;
      certificateChainPath_ = other.certificateChainPath_;
      privateKeyPath_ = other.privateKeyPath_;
      hostName_ = other.hostName_;
      rootCertificatePath_ = other.rootCertificatePath_;
    }

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

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

    /// <summary>Field number for the "certificateChainPath" field.</summary>
    public const int CertificateChainPathFieldNumber = 2;
    private string certificateChainPath_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string CertificateChainPath {
      get { return certificateChainPath_; }
      set {
        certificateChainPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "hostName" field.</summary>
    public const int HostNameFieldNumber = 4;
    private string hostName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string HostName {
      get { return hostName_; }
      set {
        hostName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "rootCertificatePath" field.</summary>
    public const int RootCertificatePathFieldNumber = 5;
    private string rootCertificatePath_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string RootCertificatePath {
      get { return rootCertificatePath_; }
      set {
        rootCertificatePath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GetInstanceCertificateResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CertificatePath != other.CertificatePath) return false;
      if (CertificateChainPath != other.CertificateChainPath) return false;
      if (PrivateKeyPath != other.PrivateKeyPath) return false;
      if (HostName != other.HostName) return false;
      if (RootCertificatePath != other.RootCertificatePath) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (CertificatePath.Length != 0) hash ^= CertificatePath.GetHashCode();
      if (CertificateChainPath.Length != 0) hash ^= CertificateChainPath.GetHashCode();
      if (PrivateKeyPath.Length != 0) hash ^= PrivateKeyPath.GetHashCode();
      if (HostName.Length != 0) hash ^= HostName.GetHashCode();
      if (RootCertificatePath.Length != 0) hash ^= RootCertificatePath.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 (CertificatePath.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(CertificatePath);
      }
      if (CertificateChainPath.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(CertificateChainPath);
      }
      if (PrivateKeyPath.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PrivateKeyPath);
      }
      if (HostName.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(HostName);
      }
      if (RootCertificatePath.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(RootCertificatePath);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (CertificatePath.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CertificatePath);
      }
      if (CertificateChainPath.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CertificateChainPath);
      }
      if (PrivateKeyPath.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PrivateKeyPath);
      }
      if (HostName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(HostName);
      }
      if (RootCertificatePath.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RootCertificatePath);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GetInstanceCertificateResponse other) {
      if (other == null) {
        return;
      }
      if (other.CertificatePath.Length != 0) {
        CertificatePath = other.CertificatePath;
      }
      if (other.CertificateChainPath.Length != 0) {
        CertificateChainPath = other.CertificateChainPath;
      }
      if (other.PrivateKeyPath.Length != 0) {
        PrivateKeyPath = other.PrivateKeyPath;
      }
      if (other.HostName.Length != 0) {
        HostName = other.HostName;
      }
      if (other.RootCertificatePath.Length != 0) {
        RootCertificatePath = other.RootCertificatePath;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            CertificatePath = input.ReadString();
            break;
          }
          case 18: {
            CertificateChainPath = input.ReadString();
            break;
          }
          case 26: {
            PrivateKeyPath = input.ReadString();
            break;
          }
          case 34: {
            HostName = input.ReadString();
            break;
          }
          case 42: {
            RootCertificatePath = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[18]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public BackfillMatchmakingResponse(BackfillMatchmakingResponse other) : this() {
      ticketId_ = other.ticketId_;
    }

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (TicketId.Length != 0) hash ^= TicketId.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 (TicketId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(TicketId);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (TicketId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TicketId);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(BackfillMatchmakingResponse other) {
      if (other == null) {
        return;
      }
      if (other.TicketId.Length != 0) {
        TicketId = other.TicketId;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            TicketId = input.ReadString();
            break;
          }
        }
      }
    }

  }

  /// <summary>
  ///Common objects
  /// </summary>
  public sealed partial class Response : pb::IMessage<Response> {
    private static readonly pb::MessageParser<Response> _parser = new pb::MessageParser<Response>(() => new Response());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Response> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[19]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Response(Response other) : this() {
      status_ = other.status_;
      errorMessage_ = other.errorMessage_;
    }

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

    /// <summary>Field number for the "status" field.</summary>
    public const int StatusFieldNumber = 1;
    private global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Response.Types.Status status_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Response.Types.Status Status {
      get { return status_; }
      set {
        status_ = value;
      }
    }

    /// <summary>Field number for the "errorMessage" field.</summary>
    public const int ErrorMessageFieldNumber = 2;
    private string errorMessage_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string ErrorMessage {
      get { return errorMessage_; }
      set {
        errorMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Response other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Status != other.Status) return false;
      if (ErrorMessage != other.ErrorMessage) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Status != 0) hash ^= Status.GetHashCode();
      if (ErrorMessage.Length != 0) hash ^= ErrorMessage.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 (Status != 0) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Status);
      }
      if (ErrorMessage.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ErrorMessage);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Status != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
      }
      if (ErrorMessage.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ErrorMessage);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Response other) {
      if (other == null) {
        return;
      }
      if (other.Status != 0) {
        Status = other.Status;
      }
      if (other.ErrorMessage.Length != 0) {
        ErrorMessage = other.ErrorMessage;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            status_ = (global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.Response.Types.Status) input.ReadEnum();
            break;
          }
          case 18: {
            ErrorMessage = input.ReadString();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the Response message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum Status {
        [pbr::OriginalName("OK")] Ok = 0,
        [pbr::OriginalName("ERROR")] Error = 1,
      }

    }
    #endregion

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[20]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GameLiftResponse(GameLiftResponse other) : this() {
      status_ = other.status_;
      responseData_ = other.responseData_;
      errorMessage_ = other.errorMessage_;
    }

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

    /// <summary>Field number for the "status" field.</summary>
    public const int StatusFieldNumber = 1;
    private global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameLiftResponse.Types.Status status_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameLiftResponse.Types.Status Status {
      get { return status_; }
      set {
        status_ = value;
      }
    }

    /// <summary>Field number for the "responseData" field.</summary>
    public const int ResponseDataFieldNumber = 2;
    private string responseData_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string ResponseData {
      get { return responseData_; }
      set {
        responseData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GameLiftResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Status != other.Status) return false;
      if (ResponseData != other.ResponseData) return false;
      if (ErrorMessage != other.ErrorMessage) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Status != 0) hash ^= Status.GetHashCode();
      if (ResponseData.Length != 0) hash ^= ResponseData.GetHashCode();
      if (ErrorMessage.Length != 0) hash ^= ErrorMessage.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 (Status != 0) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Status);
      }
      if (ResponseData.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResponseData);
      }
      if (ErrorMessage.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(ErrorMessage);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Status != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
      }
      if (ResponseData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResponseData);
      }
      if (ErrorMessage.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ErrorMessage);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GameLiftResponse other) {
      if (other == null) {
        return;
      }
      if (other.Status != 0) {
        Status = other.Status;
      }
      if (other.ResponseData.Length != 0) {
        ResponseData = other.ResponseData;
      }
      if (other.ErrorMessage.Length != 0) {
        ErrorMessage = other.ErrorMessage;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            status_ = (global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameLiftResponse.Types.Status) input.ReadEnum();
            break;
          }
          case 18: {
            ResponseData = input.ReadString();
            break;
          }
          case 26: {
            ErrorMessage = input.ReadString();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the GameLiftResponse message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum Status {
        [pbr::OriginalName("OK")] Ok = 0,
        [pbr::OriginalName("ERROR_400")] Error400 = 1,
        [pbr::OriginalName("ERROR_500")] Error500 = 2,
      }

    }
    #endregion

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[21]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GameSession(GameSession other) : this() {
      gameSessionId_ = other.gameSessionId_;
      fleetId_ = other.fleetId_;
      name_ = other.name_;
      maxPlayers_ = other.maxPlayers_;
      joinable_ = other.joinable_;
      gameProperties_ = other.gameProperties_.Clone();
      ipAddress_ = other.ipAddress_;
      port_ = other.port_;
      gameSessionData_ = other.gameSessionData_;
      matchmakerData_ = other.matchmakerData_;
      dnsName_ = other.dnsName_;
    }

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

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

    /// <summary>Field number for the "fleetId" field.</summary>
    public const int FleetIdFieldNumber = 2;
    private string fleetId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string FleetId {
      get { return fleetId_; }
      set {
        fleetId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 3;
    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 "maxPlayers" field.</summary>
    public const int MaxPlayersFieldNumber = 4;
    private int maxPlayers_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int MaxPlayers {
      get { return maxPlayers_; }
      set {
        maxPlayers_ = value;
      }
    }

    /// <summary>Field number for the "joinable" field.</summary>
    public const int JoinableFieldNumber = 5;
    private bool joinable_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Joinable {
      get { return joinable_; }
      set {
        joinable_ = value;
      }
    }

    /// <summary>Field number for the "gameProperties" field.</summary>
    public const int GamePropertiesFieldNumber = 6;
    private static readonly pb::FieldCodec<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty> _repeated_gameProperties_codec
        = pb::FieldCodec.ForMessage(50, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty.Parser);
    private readonly pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty> gameProperties_ = new pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.GameProperty> GameProperties {
      get { return gameProperties_; }
    }

    /// <summary>Field number for the "ipAddress" field.</summary>
    public const int IpAddressFieldNumber = 7;
    private string ipAddress_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string IpAddress {
      get { return ipAddress_; }
      set {
        ipAddress_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "port" field.</summary>
    public const int PortFieldNumber = 8;
    private int port_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Port {
      get { return port_; }
      set {
        port_ = value;
      }
    }

    /// <summary>Field number for the "gameSessionData" field.</summary>
    public const int GameSessionDataFieldNumber = 9;
    private string gameSessionData_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string GameSessionData {
      get { return gameSessionData_; }
      set {
        gameSessionData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "matchmakerData" field.</summary>
    public const int MatchmakerDataFieldNumber = 10;
    private string matchmakerData_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string MatchmakerData {
      get { return matchmakerData_; }
      set {
        matchmakerData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "dnsName" field.</summary>
    public const int DnsNameFieldNumber = 11;
    private string dnsName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string DnsName {
      get { return dnsName_; }
      set {
        dnsName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GameSession other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameSessionId != other.GameSessionId) return false;
      if (FleetId != other.FleetId) return false;
      if (Name != other.Name) return false;
      if (MaxPlayers != other.MaxPlayers) return false;
      if (Joinable != other.Joinable) return false;
      if(!gameProperties_.Equals(other.gameProperties_)) return false;
      if (IpAddress != other.IpAddress) return false;
      if (Port != other.Port) return false;
      if (GameSessionData != other.GameSessionData) return false;
      if (MatchmakerData != other.MatchmakerData) return false;
      if (DnsName != other.DnsName) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (FleetId.Length != 0) hash ^= FleetId.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (MaxPlayers != 0) hash ^= MaxPlayers.GetHashCode();
      if (Joinable != false) hash ^= Joinable.GetHashCode();
      hash ^= gameProperties_.GetHashCode();
      if (IpAddress.Length != 0) hash ^= IpAddress.GetHashCode();
      if (Port != 0) hash ^= Port.GetHashCode();
      if (GameSessionData.Length != 0) hash ^= GameSessionData.GetHashCode();
      if (MatchmakerData.Length != 0) hash ^= MatchmakerData.GetHashCode();
      if (DnsName.Length != 0) hash ^= DnsName.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 (GameSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(GameSessionId);
      }
      if (FleetId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(FleetId);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Name);
      }
      if (MaxPlayers != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(MaxPlayers);
      }
      if (Joinable != false) {
        output.WriteRawTag(40);
        output.WriteBool(Joinable);
      }
      gameProperties_.WriteTo(output, _repeated_gameProperties_codec);
      if (IpAddress.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(IpAddress);
      }
      if (Port != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(Port);
      }
      if (GameSessionData.Length != 0) {
        output.WriteRawTag(74);
        output.WriteString(GameSessionData);
      }
      if (MatchmakerData.Length != 0) {
        output.WriteRawTag(82);
        output.WriteString(MatchmakerData);
      }
      if (DnsName.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(DnsName);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (FleetId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(FleetId);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (MaxPlayers != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxPlayers);
      }
      if (Joinable != false) {
        size += 1 + 1;
      }
      size += gameProperties_.CalculateSize(_repeated_gameProperties_codec);
      if (IpAddress.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(IpAddress);
      }
      if (Port != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Port);
      }
      if (GameSessionData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionData);
      }
      if (MatchmakerData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MatchmakerData);
      }
      if (DnsName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DnsName);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GameSession other) {
      if (other == null) {
        return;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.FleetId.Length != 0) {
        FleetId = other.FleetId;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.MaxPlayers != 0) {
        MaxPlayers = other.MaxPlayers;
      }
      if (other.Joinable != false) {
        Joinable = other.Joinable;
      }
      gameProperties_.Add(other.gameProperties_);
      if (other.IpAddress.Length != 0) {
        IpAddress = other.IpAddress;
      }
      if (other.Port != 0) {
        Port = other.Port;
      }
      if (other.GameSessionData.Length != 0) {
        GameSessionData = other.GameSessionData;
      }
      if (other.MatchmakerData.Length != 0) {
        MatchmakerData = other.MatchmakerData;
      }
      if (other.DnsName.Length != 0) {
        DnsName = other.DnsName;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            GameSessionId = input.ReadString();
            break;
          }
          case 18: {
            FleetId = input.ReadString();
            break;
          }
          case 26: {
            Name = input.ReadString();
            break;
          }
          case 32: {
            MaxPlayers = input.ReadInt32();
            break;
          }
          case 40: {
            Joinable = input.ReadBool();
            break;
          }
          case 50: {
            gameProperties_.AddEntriesFrom(input, _repeated_gameProperties_codec);
            break;
          }
          case 58: {
            IpAddress = input.ReadString();
            break;
          }
          case 64: {
            Port = input.ReadInt32();
            break;
          }
          case 74: {
            GameSessionData = input.ReadString();
            break;
          }
          case 82: {
            MatchmakerData = input.ReadString();
            break;
          }
          case 90: {
            DnsName = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[22]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GameProperty(GameProperty other) : this() {
      key_ = other.key_;
      value_ = other.value_;
    }

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GameProperty other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Key != other.Key) return false;
      if (Value != other.Value) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Key.Length != 0) hash ^= Key.GetHashCode();
      if (Value.Length != 0) hash ^= Value.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 (Key.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Key);
      }
      if (Value.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Value);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Key.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Key);
      }
      if (Value.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Value);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GameProperty other) {
      if (other == null) {
        return;
      }
      if (other.Key.Length != 0) {
        Key = other.Key;
      }
      if (other.Value.Length != 0) {
        Value = other.Value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            Key = input.ReadString();
            break;
          }
          case 18: {
            Value = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[23]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public PlayerSession(PlayerSession other) : this() {
      playerSessionId_ = other.playerSessionId_;
      playerId_ = other.playerId_;
      gameSessionId_ = other.gameSessionId_;
      fleetId_ = other.fleetId_;
      ipAddress_ = other.ipAddress_;
      status_ = other.status_;
      creationTime_ = other.creationTime_;
      terminationTime_ = other.terminationTime_;
      port_ = other.port_;
      playerData_ = other.playerData_;
      dnsName_ = other.dnsName_;
    }

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

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

    /// <summary>Field number for the "playerId" field.</summary>
    public const int PlayerIdFieldNumber = 2;
    private string playerId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PlayerId {
      get { return playerId_; }
      set {
        playerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "fleetId" field.</summary>
    public const int FleetIdFieldNumber = 4;
    private string fleetId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string FleetId {
      get { return fleetId_; }
      set {
        fleetId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "ipAddress" field.</summary>
    public const int IpAddressFieldNumber = 5;
    private string ipAddress_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string IpAddress {
      get { return ipAddress_; }
      set {
        ipAddress_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "status" field.</summary>
    public const int StatusFieldNumber = 6;
    private string status_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Status {
      get { return status_; }
      set {
        status_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "creationTime" field.</summary>
    public const int CreationTimeFieldNumber = 7;
    private long creationTime_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long CreationTime {
      get { return creationTime_; }
      set {
        creationTime_ = value;
      }
    }

    /// <summary>Field number for the "terminationTime" field.</summary>
    public const int TerminationTimeFieldNumber = 8;
    private long terminationTime_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long TerminationTime {
      get { return terminationTime_; }
      set {
        terminationTime_ = value;
      }
    }

    /// <summary>Field number for the "port" field.</summary>
    public const int PortFieldNumber = 9;
    private int port_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Port {
      get { return port_; }
      set {
        port_ = value;
      }
    }

    /// <summary>Field number for the "playerData" field.</summary>
    public const int PlayerDataFieldNumber = 10;
    private string playerData_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PlayerData {
      get { return playerData_; }
      set {
        playerData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "dnsName" field.</summary>
    public const int DnsNameFieldNumber = 11;
    private string dnsName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string DnsName {
      get { return dnsName_; }
      set {
        dnsName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(PlayerSession other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (PlayerSessionId != other.PlayerSessionId) return false;
      if (PlayerId != other.PlayerId) return false;
      if (GameSessionId != other.GameSessionId) return false;
      if (FleetId != other.FleetId) return false;
      if (IpAddress != other.IpAddress) return false;
      if (Status != other.Status) return false;
      if (CreationTime != other.CreationTime) return false;
      if (TerminationTime != other.TerminationTime) return false;
      if (Port != other.Port) return false;
      if (PlayerData != other.PlayerData) return false;
      if (DnsName != other.DnsName) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (PlayerSessionId.Length != 0) hash ^= PlayerSessionId.GetHashCode();
      if (PlayerId.Length != 0) hash ^= PlayerId.GetHashCode();
      if (GameSessionId.Length != 0) hash ^= GameSessionId.GetHashCode();
      if (FleetId.Length != 0) hash ^= FleetId.GetHashCode();
      if (IpAddress.Length != 0) hash ^= IpAddress.GetHashCode();
      if (Status.Length != 0) hash ^= Status.GetHashCode();
      if (CreationTime != 0L) hash ^= CreationTime.GetHashCode();
      if (TerminationTime != 0L) hash ^= TerminationTime.GetHashCode();
      if (Port != 0) hash ^= Port.GetHashCode();
      if (PlayerData.Length != 0) hash ^= PlayerData.GetHashCode();
      if (DnsName.Length != 0) hash ^= DnsName.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 (PlayerSessionId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(PlayerSessionId);
      }
      if (PlayerId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PlayerId);
      }
      if (GameSessionId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(GameSessionId);
      }
      if (FleetId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(FleetId);
      }
      if (IpAddress.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(IpAddress);
      }
      if (Status.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Status);
      }
      if (CreationTime != 0L) {
        output.WriteRawTag(56);
        output.WriteInt64(CreationTime);
      }
      if (TerminationTime != 0L) {
        output.WriteRawTag(64);
        output.WriteInt64(TerminationTime);
      }
      if (Port != 0) {
        output.WriteRawTag(72);
        output.WriteInt32(Port);
      }
      if (PlayerData.Length != 0) {
        output.WriteRawTag(82);
        output.WriteString(PlayerData);
      }
      if (DnsName.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(DnsName);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (PlayerSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerSessionId);
      }
      if (PlayerId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerId);
      }
      if (GameSessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameSessionId);
      }
      if (FleetId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(FleetId);
      }
      if (IpAddress.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(IpAddress);
      }
      if (Status.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Status);
      }
      if (CreationTime != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(CreationTime);
      }
      if (TerminationTime != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(TerminationTime);
      }
      if (Port != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Port);
      }
      if (PlayerData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerData);
      }
      if (DnsName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DnsName);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(PlayerSession other) {
      if (other == null) {
        return;
      }
      if (other.PlayerSessionId.Length != 0) {
        PlayerSessionId = other.PlayerSessionId;
      }
      if (other.PlayerId.Length != 0) {
        PlayerId = other.PlayerId;
      }
      if (other.GameSessionId.Length != 0) {
        GameSessionId = other.GameSessionId;
      }
      if (other.FleetId.Length != 0) {
        FleetId = other.FleetId;
      }
      if (other.IpAddress.Length != 0) {
        IpAddress = other.IpAddress;
      }
      if (other.Status.Length != 0) {
        Status = other.Status;
      }
      if (other.CreationTime != 0L) {
        CreationTime = other.CreationTime;
      }
      if (other.TerminationTime != 0L) {
        TerminationTime = other.TerminationTime;
      }
      if (other.Port != 0) {
        Port = other.Port;
      }
      if (other.PlayerData.Length != 0) {
        PlayerData = other.PlayerData;
      }
      if (other.DnsName.Length != 0) {
        DnsName = other.DnsName;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            PlayerSessionId = input.ReadString();
            break;
          }
          case 18: {
            PlayerId = input.ReadString();
            break;
          }
          case 26: {
            GameSessionId = input.ReadString();
            break;
          }
          case 34: {
            FleetId = input.ReadString();
            break;
          }
          case 42: {
            IpAddress = input.ReadString();
            break;
          }
          case 50: {
            Status = input.ReadString();
            break;
          }
          case 56: {
            CreationTime = input.ReadInt64();
            break;
          }
          case 64: {
            TerminationTime = input.ReadInt64();
            break;
          }
          case 72: {
            Port = input.ReadInt32();
            break;
          }
          case 82: {
            PlayerData = input.ReadString();
            break;
          }
          case 90: {
            DnsName = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[24]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Player(Player other) : this() {
      playerId_ = other.playerId_;
      playerAttributes_ = other.playerAttributes_.Clone();
      team_ = other.team_;
      latencyInMs_ = other.latencyInMs_.Clone();
    }

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

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

    /// <summary>Field number for the "playerAttributes" field.</summary>
    public const int PlayerAttributesFieldNumber = 2;
    private static readonly pbc::MapField<string, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue>.Codec _map_playerAttributes_codec
        = new pbc::MapField<string, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForMessage(18, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue.Parser), 18);
    private readonly pbc::MapField<string, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue> playerAttributes_ = new pbc::MapField<string, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::MapField<string, global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.AttributeValue> PlayerAttributes {
      get { return playerAttributes_; }
    }

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

    /// <summary>Field number for the "latencyInMs" field.</summary>
    public const int LatencyInMsFieldNumber = 4;
    private static readonly pbc::MapField<string, int>.Codec _map_latencyInMs_codec
        = new pbc::MapField<string, int>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForInt32(16), 34);
    private readonly pbc::MapField<string, int> latencyInMs_ = new pbc::MapField<string, int>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::MapField<string, int> LatencyInMs {
      get { return latencyInMs_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Player other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (PlayerId != other.PlayerId) return false;
      if (!PlayerAttributes.Equals(other.PlayerAttributes)) return false;
      if (Team != other.Team) return false;
      if (!LatencyInMs.Equals(other.LatencyInMs)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (PlayerId.Length != 0) hash ^= PlayerId.GetHashCode();
      hash ^= PlayerAttributes.GetHashCode();
      if (Team.Length != 0) hash ^= Team.GetHashCode();
      hash ^= LatencyInMs.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 (PlayerId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(PlayerId);
      }
      playerAttributes_.WriteTo(output, _map_playerAttributes_codec);
      if (Team.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Team);
      }
      latencyInMs_.WriteTo(output, _map_latencyInMs_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (PlayerId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerId);
      }
      size += playerAttributes_.CalculateSize(_map_playerAttributes_codec);
      if (Team.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Team);
      }
      size += latencyInMs_.CalculateSize(_map_latencyInMs_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Player other) {
      if (other == null) {
        return;
      }
      if (other.PlayerId.Length != 0) {
        PlayerId = other.PlayerId;
      }
      playerAttributes_.Add(other.playerAttributes_);
      if (other.Team.Length != 0) {
        Team = other.Team;
      }
      latencyInMs_.Add(other.latencyInMs_);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            PlayerId = input.ReadString();
            break;
          }
          case 18: {
            playerAttributes_.AddEntriesFrom(input, _map_playerAttributes_codec);
            break;
          }
          case 26: {
            Team = input.ReadString();
            break;
          }
          case 34: {
            latencyInMs_.AddEntriesFrom(input, _map_latencyInMs_codec);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Amazon.Whitewater.Auxproxy.Pbuffer.SdkReflection.Descriptor.MessageTypes[25]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public AttributeValue(AttributeValue other) : this() {
      type_ = other.type_;
      s_ = other.s_;
      n_ = other.n_;
      sL_ = other.sL_.Clone();
      sDM_ = other.sDM_.Clone();
    }

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

    /// <summary>Field number for the "type" field.</summary>
    public const int TypeFieldNumber = 1;
    private int type_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Type {
      get { return type_; }
      set {
        type_ = value;
      }
    }

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

    /// <summary>Field number for the "N" field.</summary>
    public const int NFieldNumber = 3;
    private double n_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public double N {
      get { return n_; }
      set {
        n_ = value;
      }
    }

    /// <summary>Field number for the "SL" field.</summary>
    public const int SLFieldNumber = 4;
    private static readonly pb::FieldCodec<string> _repeated_sL_codec
        = pb::FieldCodec.ForString(34);
    private readonly pbc::RepeatedField<string> sL_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<string> SL {
      get { return sL_; }
    }

    /// <summary>Field number for the "SDM" field.</summary>
    public const int SDMFieldNumber = 5;
    private static readonly pbc::MapField<string, double>.Codec _map_sDM_codec
        = new pbc::MapField<string, double>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForDouble(17), 42);
    private readonly pbc::MapField<string, double> sDM_ = new pbc::MapField<string, double>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::MapField<string, double> SDM {
      get { return sDM_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(AttributeValue other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Type != other.Type) return false;
      if (S != other.S) return false;
      if (N != other.N) return false;
      if(!sL_.Equals(other.sL_)) return false;
      if (!SDM.Equals(other.SDM)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Type != 0) hash ^= Type.GetHashCode();
      if (S.Length != 0) hash ^= S.GetHashCode();
      if (N != 0D) hash ^= N.GetHashCode();
      hash ^= sL_.GetHashCode();
      hash ^= SDM.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 (Type != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Type);
      }
      if (S.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(S);
      }
      if (N != 0D) {
        output.WriteRawTag(25);
        output.WriteDouble(N);
      }
      sL_.WriteTo(output, _repeated_sL_codec);
      sDM_.WriteTo(output, _map_sDM_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Type != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type);
      }
      if (S.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(S);
      }
      if (N != 0D) {
        size += 1 + 8;
      }
      size += sL_.CalculateSize(_repeated_sL_codec);
      size += sDM_.CalculateSize(_map_sDM_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(AttributeValue other) {
      if (other == null) {
        return;
      }
      if (other.Type != 0) {
        Type = other.Type;
      }
      if (other.S.Length != 0) {
        S = other.S;
      }
      if (other.N != 0D) {
        N = other.N;
      }
      sL_.Add(other.sL_);
      sDM_.Add(other.sDM_);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            Type = input.ReadInt32();
            break;
          }
          case 18: {
            S = input.ReadString();
            break;
          }
          case 25: {
            N = input.ReadDouble();
            break;
          }
          case 34: {
            sL_.AddEntriesFrom(input, _repeated_sL_codec);
            break;
          }
          case 42: {
            sDM_.AddEntriesFrom(input, _map_sDM_codec);
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
