<?php
 namespace Stripe; class Subscription extends ApiResource { const OBJECT_NAME = 'subscription'; use ApiOperations\All; use ApiOperations\Create; use ApiOperations\Retrieve; use ApiOperations\Search; use ApiOperations\Update; const PAYMENT_BEHAVIOR_ALLOW_INCOMPLETE = 'allow_incomplete'; const PAYMENT_BEHAVIOR_DEFAULT_INCOMPLETE = 'default_incomplete'; const PAYMENT_BEHAVIOR_ERROR_IF_INCOMPLETE = 'error_if_incomplete'; const PAYMENT_BEHAVIOR_PENDING_IF_INCOMPLETE = 'pending_if_incomplete'; const PRORATION_BEHAVIOR_ALWAYS_INVOICE = 'always_invoice'; const PRORATION_BEHAVIOR_CREATE_PRORATIONS = 'create_prorations'; const PRORATION_BEHAVIOR_NONE = 'none'; const STATUS_ACTIVE = 'active'; const STATUS_CANCELED = 'canceled'; const STATUS_INCOMPLETE = 'incomplete'; const STATUS_INCOMPLETE_EXPIRED = 'incomplete_expired'; const STATUS_PAST_DUE = 'past_due'; const STATUS_TRIALING = 'trialing'; const STATUS_UNPAID = 'unpaid'; use ApiOperations\Delete { delete as protected _delete; } public static function getSavedNestedResources() { static $savedNestedResources = null; if (null === $savedNestedResources) { $savedNestedResources = new Util\Set([ 'source', ]); } return $savedNestedResources; } public function cancel($params = null, $opts = null) { return $this->_delete($params, $opts); } public function deleteDiscount($params = null, $opts = null) { $url = $this->instanceUrl() . '/discount'; list($response, $opts) = $this->_request('delete', $url, $params, $opts); $this->refreshFrom(['discount' => null], $opts, true); return $this; } public static function search($params = null, $opts = null) { $url = '/v1/subscriptions/search'; return self::_searchResource($url, $params, $opts); } } 