Add an observee with credentials.

        Register the given user to observe another user, given the observee's credentials.
        
        *Note:* all users are allowed to add their own observees, given the observee's
        credentials or access token are provided. Administrators can add observees given credentials, access token or
        the {api:UserObserveesController#update observee's id}.

def add_observee_with_credentials(self, user_id, access_token=None, observee_password=None, observee_unique_id=None):
        """
        Add an observee with credentials.

        Register the given user to observe another user, given the observee's credentials.
        
        *Note:* all users are allowed to add their own observees, given the observee's
        credentials or access token are provided. Administrators can add observees given credentials, access token or
        the {api:UserObserveesController#update observee's id}.
        """
        path = {}
        data = {}
        params = {}

        # REQUIRED - PATH - user_id
        """ID"""
        path["user_id"] = user_id

        # OPTIONAL - observee[unique_id]
        """The login id for the user to observe.  Required if access_token is omitted."""
        if observee_unique_id is not None:
            data["observee[unique_id]"] = observee_unique_id

        # OPTIONAL - observee[password]
        """The password for the user to observe. Required if access_token is omitted."""
        if observee_password is not None:
            data["observee[password]"] = observee_password

        # OPTIONAL - access_token
        """The access token for the user to observe.  Required if <tt>observee[unique_id]</tt> or <tt>observee[password]</tt> are omitted."""
        if access_token is not None:
            data["access_token"] = access_token

        self.logger.debug("POST /api/v1/users/{user_id}/observees with query params: {params} and form data: {data}".format(params=params, data=data, **path))
        return self.generic_request("POST", "/api/v1/users/{user_id}/observees".format(**path), data=data, params=params, single_item=True)