def update_subscription(self, subscription_id, amount=None, start=None,
            occurrences=None, trial_amount=None, trial_occurrences=None):
        subscription = self.client.factory.create('ARBSubscriptionType')

        # Add the basic subscription updates
        if amount:
            amount = Decimal(str(amount)).quantize(Decimal('0.01'))
            subscription.amount = str(amount)
        if start and start < date.today():
            raise AuthorizeInvalidError('The start date for the subscription '
                'may not be in the past.')
        if start:
            subscription.paymentSchedule.startDate = start.strftime('%Y-%m-%d')
        if occurrences:
            subscription.paymentSchedule.totalOccurrences = occurrences
        if trial_amount:
            trial_amount = Decimal(str(trial_amount))
            trial_amount = trial_amount.quantize(Decimal('0.01'))
            subscription.trialAmount = str(trial_amount)
        if trial_occurrences:
            subscription.paymentSchedule.trialOccurrences = trial_occurrences

        # Make the API call to update the subscription
        self._make_call('ARBUpdateSubscription', subscription_id,
            subscription)
Updates an existing recurring subscription payment. All fields to
dataset/ETHPy150Open drewisme/authorizesauce/authorize/apis/recurring.py/RecurringAPI.update_subscription