Create an associated contact

        Creates a deal's associated contact and its role
        If the specified deal or contact does not exist, the request will return an error

        :calls: ``post /deals/{deal_id}/associated_contacts``
        :param int deal_id: Unique identifier of a Deal.
        :param tuple *args: (optional) Single object representing AssociatedContact resource.
        :param dict **kwargs: (optional) AssociatedContact attributes.
        :return: Dictionary that support attriubte-style access and represents newely created AssociatedContact resource.
        :rtype: dict

def create(self, deal_id, *args, **kwargs):
        """
        Create an associated contact

        Creates a deal's associated contact and its role
        If the specified deal or contact does not exist, the request will return an error

        :calls: ``post /deals/{deal_id}/associated_contacts``
        :param int deal_id: Unique identifier of a Deal.
        :param tuple *args: (optional) Single object representing AssociatedContact resource.
        :param dict **kwargs: (optional) AssociatedContact attributes.
        :return: Dictionary that support attriubte-style access and represents newely created AssociatedContact resource.
        :rtype: dict
        """

        if not args and not kwargs:
            raise Exception('attributes for AssociatedContact are missing')

        attributes = args[0] if args else kwargs
        attributes = dict((k, v) for k, v in attributes.iteritems() if k in self.OPTS_KEYS_TO_PERSIST)

        _, _, associated_contact = self.http_client.post("/deals/{deal_id}/associated_contacts".format(deal_id=deal_id), body=attributes)
        return associated_contact