def update_user_defined_app_port_protocol(
    self,
    port: int,
    protocol: int,
    name: str,
    priority: int,
    disabled: bool,
    description: str = "",
) -> bool:
    """
    Create or modify a user-defined application for IP port and protocol

    .. list-table::
        :header-rows: 1

        * - Swagger Section
          - Method
          - Endpoint
        * - applicationDefinition
          - POST
          - /applicationDefinition/portProtocolClassification/{port}/{protocol}

    :param port: IP port, e.g. ``8089``
    :type port: int
    :param protocol: IP = ``0``, TCP = ``6``, UDP = ``17``
    :type protocol: int
    :param name: Identifying name of the domain, can also re-use the
        domain. Maximum of 31 characters.
    :type name: str
    :param priority: Confidence metric for classification, e.g. ``95``
    :type priority: int
    :param disabled: ``False`` is if classification is active and
        ``True`` if disabled
    :type disabled: bool
    :param description: Description of the classification,
        defaults to ""
    :type description: str, optional
    :return: Returns True/False based on successful call
    :rtype: bool
    """  # noqa: W505
    data = {
        "port": port,
        "protocol": protocol,
        "name": name,
        "description": description,
        "priority": priority,
        "disabled": disabled,
    }

    return self._post(
        "/applicationDefinition/portProtocolClassification/{}/{}".format(
            port, protocol
        ),
        data=data,
        return_type="bool",
    )