class ZMSClient implements Closeable {

    public void putGroupMembership(String domainName, String groupName, String memberName, String auditRef) {
        GroupMembership mbr = new GroupMembership().setGroupName(groupName)
                .setMemberName(memberName).setIsMember(true);
        updatePrincipal();
        try {
            client.putGroupMembership(domainName, groupName, memberName, auditRef, mbr);
        } catch (ResourceException ex) {
            throw new ZMSClientException(ex.getCode(), ex.getData());
        } catch (Exception ex) {
            throw new ZMSClientException(ZMSClientException.BAD_REQUEST, ex.getMessage());
        }
    }

    public  ZMSClient();
    public  ZMSClient(String url);
    public  ZMSClient(String url, Principal identity);
    public  ZMSClient(Principal identity);
    public  ZMSClient(String url, SSLContext sslContext);

}