@abc.abstractmethod<EOL><INDENT>def get_commitments_by_genus_type_for_event_and_resource(self, event_id, resource_id, commitment_genus_type):<DEDENT>
return<EOL>
Gets the commitments of the given genus type for the given event, resource, and commitment genus type
        including any genus types derived from the given genus type.

        If the event is a recurring event, the commitments are returned
        for the recurring event only.

        In plenary mode, the returned list contains all of the
        commitments mapped to the event ``Id`` or an error results if an
        Id in the supplied list is not found or inaccessible. Otherwise,
        inaccessible ``Commitments`` may be omitted from the list and
        may present the elements in any order including returning a
        unique set.

        In effective mode, commitments are returned that are currently
        effective. In any effective mode, effective commitments and
        those currently expired are returned.

        :param event_id: ``Id`` of the ``Event``
        :type event_id: ``osid.id.Id``
        :param resource_id: ``Id`` of a ``Resource``
        :type resource_id: ``osid.id.Id``
        :param commitment_genus_type: commitment genus type
        :type commitment_genus_type: ``osid.type.Type``
        :return: list of commitments
        :rtype: ``osid.calendaring.CommitmentList``
        :raise: ``NullArgument`` -- ``event_id, resource_id`` or ``commitment_genus_type`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``PermissionDenied`` -- authorization failure

        *compliance: mandatory -- This method is must be implemented.*