def replace_free_shipping_coupon_by_id(cls, free_shipping_coupon_id, free_shipping_coupon, **kwargs):
        """Replace FreeShippingCoupon

        Replace all attributes of FreeShippingCoupon
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async=True
        >>> thread = api.replace_free_shipping_coupon_by_id(free_shipping_coupon_id, free_shipping_coupon, async=True)
        >>> result = thread.get()

        :param async bool
        :param str free_shipping_coupon_id: ID of freeShippingCoupon to replace (required)
        :param FreeShippingCoupon free_shipping_coupon: Attributes of freeShippingCoupon to replace (required)
        :return: FreeShippingCoupon
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async'):
            return cls._replace_free_shipping_coupon_by_id_with_http_info(free_shipping_coupon_id, free_shipping_coupon, **kwargs)
        else:
            (data) = cls._replace_free_shipping_coupon_by_id_with_http_info(free_shipping_coupon_id, free_shipping_coupon, **kwargs)
            return data