1from __future__ import absolute_import, division, print_function 2 3from stripe import util 4from stripe.api_resources.abstract import CreateableAPIResource 5from stripe.api_resources.abstract import ListableAPIResource 6from stripe.api_resources.abstract import UpdateableAPIResource 7from stripe.api_resources.abstract import custom_method 8 9 10@custom_method("attach", http_verb="post") 11@custom_method("detach", http_verb="post") 12class PaymentMethod( 13 CreateableAPIResource, ListableAPIResource, UpdateableAPIResource 14): 15 OBJECT_NAME = "payment_method" 16 17 def attach(self, idempotency_key=None, **params): 18 url = self.instance_url() + "/attach" 19 headers = util.populate_headers(idempotency_key) 20 self.refresh_from(self.request("post", url, params, headers)) 21 return self 22 23 def detach(self, idempotency_key=None, **params): 24 url = self.instance_url() + "/detach" 25 headers = util.populate_headers(idempotency_key) 26 self.refresh_from(self.request("post", url, params, headers)) 27 return self 28