def __init__(self, realm, roles, authmethods=None, authid=None):
    '\n\n      :param realm: The URI of the WAMP realm to join.\n      :type realm: unicode\n      :param roles: The WAMP roles to announce.\n      :type roles: list of :class:`autobahn.wamp.role.RoleFeatures`\n      :param authmethods: The authentication methods to announce.\n      :type authmethods: list of unicode or None\n      :param authid: The authentication ID to announce.\n      :type authid: unicode or None\n      '
    assert (type(realm) == six.text_type)
    assert (type(roles) == list)
    for role in roles:
        assert isinstance(role, autobahn.wamp.role.RoleFeatures)
    if authmethods:
        assert (type(authmethods) == list)
        for authmethod in authmethods:
            assert (type(authmethod) == six.text_type)
    assert ((authid is None) or (type(authid) == six.text_type))
    Message.__init__(self)
    self.realm = realm
    self.roles = roles
    self.authmethods = authmethods
    self.authid = authid
:param realm: The URI of the WAMP realm to join.
:type realm: unicode
:param roles: The WAMP roles to announce.
:type roles: list of :class:`autobahn.wamp.role.RoleFeatures`
:param authmethods: The authentication methods to announce.
:type authmethods: list of unicode or None
:param authid: The authentication ID to announce.
:type authid: unicode or None
def __init__(self, realm, roles, authmethods=None, authid=None):
    '\n\n      :param realm: The URI of the WAMP realm to join.\n      :type realm: unicode\n      :param roles: The WAMP roles to announce.\n      :type roles: list of :class:`autobahn.wamp.role.RoleFeatures`\n      :param authmethods: The authentication methods to announce.\n      :type authmethods: list of unicode or None\n      :param authid: The authentication ID to announce.\n      :type authid: unicode or None\n      '
    assert (type(realm) == six.text_type)
    assert (type(roles) == list)
    for role in roles:
        assert isinstance(role, autobahn.wamp.role.RoleFeatures)
    if authmethods:
        assert (type(authmethods) == list)
        for authmethod in authmethods:
            assert (type(authmethod) == six.text_type)
    assert ((authid is None) or (type(authid) == six.text_type))
    Message.__init__(self)
    self.realm = realm
    self.roles = roles
    self.authmethods = authmethods
    self.authid = authid