def __init__(self, session, roles, authid=None, authrole=None, authmethod=None, authprovider=None):
    '\n\n      :param session: The WAMP session ID the other peer is assigned.\n      :type session: int\n      :param roles: The WAMP roles to announce.\n      :type roles: list of :class:`autobahn.wamp.role.RoleFeatures`\n      :param authid: The authentication ID assigned.\n      :type authid: unicode or None\n      :param authrole: The authentication role assigned.\n      :type authrole: unicode or None\n      :param authmethod: The authentication method in use.\n      :type authmethod: unicode or None\n      :param authprovider: The authentication method in use.\n      :type authprovider: unicode or None\n      '
    assert (type(session) in six.integer_types)
    assert (type(roles) == list)
    for role in roles:
        assert isinstance(role, autobahn.wamp.role.RoleFeatures)
    assert ((authid is None) or (type(authid) == six.text_type))
    assert ((authrole is None) or (type(authrole) == six.text_type))
    assert ((authmethod is None) or (type(authmethod) == six.text_type))
    assert ((authprovider is None) or (type(authprovider) == six.text_type))
    Message.__init__(self)
    self.session = session
    self.roles = roles
    self.authid = authid
    self.authrole = authrole
    self.authmethod = authmethod
    self.authprovider = authprovider
:param session: The WAMP session ID the other peer is assigned.
:type session: int
:param roles: The WAMP roles to announce.
:type roles: list of :class:`autobahn.wamp.role.RoleFeatures`
:param authid: The authentication ID assigned.
:type authid: unicode or None
:param authrole: The authentication role assigned.
:type authrole: unicode or None
:param authmethod: The authentication method in use.
:type authmethod: unicode or None
:param authprovider: The authentication method in use.
:type authprovider: unicode or None
def __init__(self, session, roles, authid=None, authrole=None, authmethod=None, authprovider=None):
    '\n\n      :param session: The WAMP session ID the other peer is assigned.\n      :type session: int\n      :param roles: The WAMP roles to announce.\n      :type roles: list of :class:`autobahn.wamp.role.RoleFeatures`\n      :param authid: The authentication ID assigned.\n      :type authid: unicode or None\n      :param authrole: The authentication role assigned.\n      :type authrole: unicode or None\n      :param authmethod: The authentication method in use.\n      :type authmethod: unicode or None\n      :param authprovider: The authentication method in use.\n      :type authprovider: unicode or None\n      '
    assert (type(session) in six.integer_types)
    assert (type(roles) == list)
    for role in roles:
        assert isinstance(role, autobahn.wamp.role.RoleFeatures)
    assert ((authid is None) or (type(authid) == six.text_type))
    assert ((authrole is None) or (type(authrole) == six.text_type))
    assert ((authmethod is None) or (type(authmethod) == six.text_type))
    assert ((authprovider is None) or (type(authprovider) == six.text_type))
    Message.__init__(self)
    self.session = session
    self.roles = roles
    self.authid = authid
    self.authrole = authrole
    self.authmethod = authmethod
    self.authprovider = authprovider