o
    iF                    @   sP  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d d	lmZmZmZmZmZmZ d d
lmZmZmZmZ erd dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 G dd ded ed ed Z3e3e3j4_5dS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)APIResourceTestHelpers)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralTypeUnpackTYPE_CHECKING)
Cardholder)PersonalizationDesign)CardCreateParams)CardDeliverCardParams)CardFailCardParams)CardListParams)CardModifyParams)CardRetrieveParams)CardReturnCardParams)CardShipCardParams)CardSubmitCardParamsc                   @   s  e Zd ZU dZdZeed  ed< G dd deZ	G dd deZ
G dd	 d	eZeed
< 	 eed  ed< 	 ded< 	 eed< 	 eed< 	 ee ed< 	 eed< 	 eed< 	 ee ed< 	 eed< 	 eed< 	 eed< 	 eeef ed< 	 ee ed< 	 ed ed< 	 eed  ed< 	 eed   ed< 	 eed   ed< 	 eed  ed < 	 ee ed!< 	 ee	 ed"< 	 e
ed#< ed$ ed%< 	 ed& ed'< 	 ee ed(< 	 ed)ed* d+d fd,d-Zed)ed* d+d fd.d/Zed)ed0 d+ed  fd1d2Zed)ed0 d+ed  fd3d4Zeded)ed5 d+d fd6d7Zeded)ed5 d+d fd8d9Zeded)ed: d+d fd;d<Zeded)ed: d+d fd=d>ZG d?d@ d@ed  ZedAdB Z e	e
edCZ!dDS )ECardzu
    You can [create physical or virtual cards](https://stripe.com/docs/issuing) that are issued to cardholders.
    zissuing.cardOBJECT_NAMEc                   @   s   e Zd ZU G dd deZG dd deZG dd deZeed< ee ed< 	 ee	d	  ed
< 	 ee ed< 	 ee
 ed< 	 eed< 	 ee ed< 	 ee ed< 	 e	d ed< 	 ee	d  ed< 	 ee ed< 	 ee ed< 	 e	d ed< 	 eeedZdS )zCard.Shippingc                   @   `   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )zCard.Shipping.Addresscitycountryline1line2postal_codestateN__name__
__module____qualname__r   str__annotations__ r/   r/   t/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/issuing/_card.pyAddress.      
 r1   c                   @   sT   e Zd ZU G dd deZed ed< 	 ee ed< 	 eed  ed< 	 deiZdS )	zCard.Shipping.AddressValidationc                   @   r"   )z1Card.Shipping.AddressValidation.NormalizedAddressr#   r$   r%   r&   r'   r(   Nr)   r/   r/   r/   r0   NormalizedAddressI   r2   r3   )disablednormalization_onlyvalidation_and_normalizationmodenormalized_address)indeterminatelikely_deliverablelikely_undeliverableresultN)	r*   r+   r,   r   r3   r   r.   r   _inner_class_typesr/   r/   r/   r0   AddressValidationH   s   
 r>   c                   @   s   e Zd ZU ee ed< dS )zCard.Shipping.Customseori_numberNr)   r/   r/   r/   r0   Customs{   s   
 r@   addressaddress_validation)dhlfedex
royal_mailuspscarriercustomsetanamephone_numberrequire_signature)expressprioritystandardservice)canceled	deliveredfailurependingreturnedshipped	submittedstatustracking_numbertracking_url)bulk
individualtype)rA   rB   rH   N)r*   r+   r,   r   r1   r>   r@   r.   r   r   intr-   boolr=   r/   r/   r/   r0   Shipping-   sJ   
 3
r`   c                   @   s   e Zd ZU G dd deZeeed   ed< 	 eee	  ed< 	 eeed   ed< 	 eee	  ed< 	 eee  ed< 	 ee	 ed	< 	 deiZ
d
S )zCard.SpendingControlsc                   @   s:   e Zd ZU eed< 	 eeed   ed< 	 ed ed< dS )z#Card.SpendingControls.SpendingLimitamount'  ac_refrigeration_repairaccounting_bookkeeping_servicesadvertising_servicesagricultural_cooperativeairlines_air_carriersairports_flying_fieldsambulance_servicesamusement_parks_carnivalsantique_reproductionsantique_shops	aquariums architectural_surveying_servicesart_dealers_and_galleriesartists_supply_and_craft_shopsauto_and_home_supply_storesauto_body_repair_shopsauto_paint_shopsauto_service_shopsautomated_cash_disburseautomated_fuel_dispensersautomobile_associations'automotive_parts_and_accessories_storesautomotive_tire_storesbail_and_bond_paymentsbakeriesbands_orchestrasbarber_and_beauty_shopsbetting_casino_gamblingbicycle_shopsbilliard_pool_establishmentsboat_dealersboat_rentals_and_leasesbook_stores books_periodicals_and_newspapersbowling_alleys	bus_linesbusiness_secretarial_schoolsbuying_shopping_services2cable_satellite_and_other_pay_television_and_radio%camera_and_photographic_supply_stores"candy_nut_and_confectionery_storescar_and_truck_dealers_new_usedcar_and_truck_dealers_used_onlycar_rental_agencies
car_washescarpentry_servicescarpet_upholstery_cleaningcaterers7charitable_and_social_service_organizations_fundraisingchemicals_and_allied_productschild_care_services!childrens_and_infants_wear_storeschiropodists_podiatristschiropractorscigar_stores_and_stands#civic_social_fraternal_associationscleaning_and_maintenanceclothing_rentalcolleges_universitiescommercial_equipmentcommercial_footwear'commercial_photography_art_and_graphicscommuter_transport_and_ferriescomputer_network_servicescomputer_programmingcomputer_repaircomputer_software_stores"computers_peripherals_and_softwareconcrete_work_servicesconstruction_materialsconsulting_public_relationscorrespondence_schoolscosmetic_storescounseling_servicescountry_clubscourier_servicescourt_costscredit_reporting_agenciescruise_linesdairy_products_storesdance_hall_studios_schoolsdating_escort_servicesdentists_orthodontistsdepartment_storesdetective_agenciesdigital_goods_applicationsdigital_goods_gamesdigital_goods_large_volumedigital_goods_media!direct_marketing_catalog_merchant8direct_marketing_combination_catalog_and_retail_merchant&direct_marketing_inbound_telemarketing#direct_marketing_insurance_servicesdirect_marketing_other'direct_marketing_outbound_telemarketingdirect_marketing_subscriptiondirect_marketing_traveldiscount_storesdoctorsdoor_to_door_sales-drapery_window_covering_and_upholstery_storesdrinking_placesdrug_stores_and_pharmacies.drugs_drug_proprietaries_and_druggist_sundriesdry_cleanersdurable_goodsduty_free_storeseating_places_restaurantseducational_serviceselectric_razor_storeselectric_vehicle_chargingelectrical_parts_and_equipmentelectrical_serviceselectronics_repair_shopselectronics_storeselementary_secondary_schools%emergency_services_gcas_visa_use_onlyemployment_temp_agenciesequipment_rentalexterminating_servicesfamily_clothing_storesfast_food_restaurantsfinancial_institutions(fines_government_administrative_entities2fireplace_fireplace_screens_and_accessories_storesfloor_covering_storesflorists+florists_supplies_nursery_stock_and_flowers$freezer_and_locker_meat_provisionersfuel_dealers_non_automotivefuneral_services_crematoriesAfurniture_home_furnishings_and_equipment_stores_except_appliancesfurniture_repair_refinishingfurriers_and_fur_shopsgeneral_services$gift_card_novelty_and_souvenir_shops glass_paint_and_wallpaper_storesglassware_crystal_storesgolf_courses_public3government_licensed_horse_dog_racing_us_region_onlyAgovernment_licensed_online_casions_online_gambling_us_region_only(government_owned_lotteries_non_us_region)government_owned_lotteries_us_region_onlygovernment_servicesgrocery_stores_supermarketshardware_equipment_and_supplieshardware_storeshealth_and_beauty_spashearing_aids_sales_and_suppliesheating_plumbing_a_chobby_toy_and_game_shopshome_supply_warehouse_stores	hospitalshotels_motels_and_resortshousehold_appliance_storesindustrial_suppliesinformation_retrieval_servicesinsurance_defaultinsurance_underwriting_premiumsintra_company_purchases3jewelry_stores_watches_clocks_and_silverware_storeslandscaping_services	laundrieslaundry_cleaning_serviceslegal_services_attorneys luggage_and_leather_goods_stores lumber_building_materials_storesmanual_cash_disbursemarinas_service_and_suppliesmarketplacesmasonry_stonework_and_plastermassage_parlorsmedical_and_dental_labs=medical_dental_ophthalmic_and_hospital_equipment_and_suppliesmedical_servicesmembership_organizations-mens_and_boys_clothing_and_accessories_storesmens_womens_clothing_storesmetal_service_centersmiscellaneous)miscellaneous_apparel_and_accessory_shopsmiscellaneous_auto_dealersmiscellaneous_business_servicesmiscellaneous_food_stores!miscellaneous_general_merchandisemiscellaneous_general_services.miscellaneous_home_furnishing_specialty_stores%miscellaneous_publishing_and_printing!miscellaneous_recreation_servicesmiscellaneous_repair_shopsmiscellaneous_specialty_retailmobile_home_dealersmotion_picture_theaters#motor_freight_carriers_and_truckingmotor_homes_dealers$motor_vehicle_supplies_and_new_partsmotorcycle_shops_and_dealersmotorcycle_shops_dealers7music_stores_musical_instruments_pianos_and_sheet_musicnews_dealers_and_newsstandsnon_fi_money_orders&non_fi_stored_value_card_purchase_loadnondurable_goods'nurseries_lawn_and_garden_supply_storesnursing_personal_careoffice_and_commercial_furnitureopticians_eyeglassesoptometrists_ophthalmologist#orthopedic_goods_prosthetic_devices
osteopaths#package_stores_beer_wine_and_liquorpaints_varnishes_and_suppliesparking_lots_garagespassenger_railways
pawn_shopspet_shops_pet_food_and_supplies petroleum_and_petroleum_productsphoto_developing7photographic_photocopy_microfilm_equipment_and_suppliesphotographic_studiospicture_video_production'piece_goods_notions_and_other_dry_goods'plumbing_heating_equipment_and_suppliespolitical_organizationspostal_services_government_only.precious_stones_and_metals_watches_and_jewelryprofessional_servicespublic_warehousing_and_storagequick_copy_repro_and_blueprint	railroads'real_estate_agents_and_managers_rentalsrecord_storesrecreational_vehicle_rentalsreligious_goods_storesreligious_organizationsroofing_siding_sheet_metalsecretarial_support_servicessecurity_brokers_dealersservice_stations/sewing_needlework_fabric_and_piece_goods_storesshoe_repair_hat_cleaningshoe_storessmall_appliance_repairsnowmobile_dealersspecial_trade_servicesspecialty_cleaningsporting_goods_storessporting_recreation_camps sports_and_riding_apparel_storessports_clubs_fieldsstamp_and_coin_stores5stationary_office_supplies_printing_and_writing_paper1stationery_stores_office_and_school_supply_storesswimming_pools_salest_ui_travel_germanytailors_alterations tax_payments_government_agenciestax_preparation_servicestaxicabs_limousines/telecommunication_equipment_and_telephone_salestelecommunication_servicestelegraph_servicestent_and_awning_shopstesting_laboratoriestheatrical_ticket_agencies
timesharestire_retreading_and_repairtolls_bridge_fees tourist_attractions_and_exhibitstowing_servicestrailer_parks_campgroundstransportation_servicestravel_agencies_tour_operatorstruck_stop_iterationtruck_utility_trailer_rentals-typesetting_plate_making_and_related_servicestypewriter_stores.u_s_federal_government_agencies_or_departmentsuniforms_commercial_clothing&used_merchandise_and_secondhand_stores	utilitiesvariety_storesveterinary_servicesvideo_amusement_game_suppliesvideo_game_arcadesvideo_tape_rental_storesvocational_trade_schoolswatch_jewelry_repairwelding_repairwholesale_clubswig_and_toupee_storeswires_money_orders$womens_accessory_and_specialty_shopswomens_ready_to_wear_storeswrecking_and_salvage_yards
categories)all_timedailymonthlyper_authorizationweeklyyearlyintervalN)r*   r+   r,   r^   r.   r   r   r   r/   r/   r/   r0   SpendingLimit   s"   
   /r  rb   allowed_categoriesallowed_merchant_countriesblocked_categoriesblocked_merchant_countriesspending_limitsspending_limits_currencyN)r*   r+   r,   r   r  r   r   r   r.   r-   r=   r/   r/   r/   r0   SpendingControls   sB   
   C  /  /r  c                   @   sV   e Zd ZU G dd deZG dd deZeed< eed< ee ed< 	 eedZ	d	S )
zCard.Walletsc                   @   (   e Zd ZU eed< 	 eed  ed< dS )zCard.Wallets.ApplePayeligiblemissing_agreementmissing_cardholder_contactunsupported_regionineligible_reasonNr*   r+   r,   r_   r.   r   r   r/   r/   r/   r0   ApplePayw     
 r  c                   @   r  )zCard.Wallets.GooglePayr  r  r  Nr  r/   r/   r/   r0   	GooglePay  r  r  	apple_pay
google_payprimary_account_identifier)r  r  N)
r*   r+   r,   r   r  r  r.   r   r-   r=   r/   r/   r/   r0   Walletsv  s   
 r  brand)design_rejectedloststolencancellation_reasonr   
cardholdercreatedcurrencycvc	exp_monthexp_yearfinancial_accountidlast4livemodemetadatanumberobjectr   personalization_designreplaced_byreplacement_for)damagedexpiredr  r  replacement_reasonsecond_lineshippingspending_controls)activerQ   inactiverX   )physicalvirtualr]   walletsparamsr   returnc                 K   s   t d| jd|  |dS )1
        Creates an Issuing Card object.
        r    postr  )r   _static_request	class_urlclsr  r/   r/   r0   create  s   zCard.createc                    s"   t d| jd|  |dI dH S )r  r    r  r  N)r   _static_request_asyncr  r  r/   r/   r0   create_async  s   
zCard.create_asyncr   c                 K   s4   | j d|  |d}t|tstdt|j |S )
        Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
        getr  %Expected list object from API, got %s)r  r  
isinstancer   	TypeErrorr]   r*   r  r  r<   r/   r/   r0   list#  s   
z	Card.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r  r  r  Nr  )r  r  r  r   r  r]   r*   r  r/   r/   r0   
list_async5  s   
zCard.list_asyncr   c                 K   s*   d|   t|f }td| jd||dS )
        Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        %s/%sr    r  r  )r  r
   r   r  r  r  r  urlr/   r/   r0   modifyI  s   zCard.modifyc                    s2   d|   t|f }td| jd||dI dH S )r  r  r    r  r  N)r  r
   r   r  r  r/   r/   r0   modify_asyncX  s   
zCard.modify_asyncr   c                 K   s   | |fi |}|   |S )3
        Retrieves an Issuing Card object.
        )refreshr  r  r  instancer/   r/   r0   retrievei  s   zCard.retrievec                    s$   | |fi |}|  I dH  |S )r  N)refresh_asyncr  r/   r/   r0   retrieve_asynct  s   zCard.retrieve_asyncc                   @   s  e Zd ZU ed ed< ededed ddfddZe	e
deded ddfd	d
Ze	ded ddfdd
Zedded ddfdd
Zededed ddfddZe	e
deded ddfddZe	ded ddfddZedded ddfddZededed ddfddZe	e
deded ddfddZe	ded ddfddZedded ddfddZededed ddfddZe	e
deded ddfdd Ze	ded ddfd!d Zed"ded ddfd#d Zededed$ ddfd%d&Ze	e
deded$ ddfd'd(Ze	ded$ ddfd)d(Zed*ded$ ddfd+d(Zededed$ ddfd,d-Ze	e
deded$ ddfd.d/Ze	ded$ ddfd0d/Zed1ded$ ddfd2d/Zededed3 ddfd4d5Ze	e
deded3 ddfd6d7Ze	ded3 ddfd8d7Zed9ded3 ddfd:d7Zededed3 ddfd;d<Ze	e
deded3 ddfd=d>Ze	ded3 ddfd?d>Zed@ded3 ddfdAd>ZedededB ddfdCdDZe	e
dededB ddfdEdFZe	dedB ddfdGdFZedHdedB ddfdIdFZedededB ddfdJdKZe	e
dededB ddfdLdMZe	dedB ddfdNdMZedOdedB ddfdPdMZdQS )RzCard.TestHelpersr    _resource_clscardr  r   r  c                 K   "   t d| jddjt|d|dS )h
            Updates the shipping status of the specified Issuing Card object to delivered.
            r    r  6/v1/test_helpers/issuing/cards/{card}/shipping/deliverr  r  r   r  formatr
   r  r  r  r/   r/   r0   _cls_deliver_card     z"Card.TestHelpers._cls_deliver_cardc                 K      dS r  Nr/   r  r  r/   r/   r0   deliver_card     zCard.TestHelpers.deliver_cardc                 K   r  r  r/   selfr  r/   r/   r0   r       r  c              	   K   ,   t d| jjddjt| jdd|dS )r  r    r  r  r  r  r  r   resource_requestr  r
   r  r  r/   r/   r0   r       c                    *   t d| jddjt|d|dI dH S )r  r    r  r  r  r  Nr   r  r  r
   r  r/   r/   r0   _cls_deliver_card_async     
z(Card.TestHelpers._cls_deliver_card_asyncc                       dS r  r/   r  r/   r/   r0   deliver_card_async     z#Card.TestHelpers.deliver_card_asyncc                    r  r  r/   r  r/   r/   r0   r       r  c              	      4   t d| jjddjt| jdd|dI dH S )r  r    r  r  r  r  r  Nr   r  _request_asyncr  r
   r  r  r/   r/   r0   r       
r   c                 K   r  )f
            Updates the shipping status of the specified Issuing Card object to failure.
            r    r  3/v1/test_helpers/issuing/cards/{card}/shipping/failr  r  r  r  r/   r/   r0   _cls_fail_card  r  zCard.TestHelpers._cls_fail_cardc                 K   r  r  Nr/   r  r/   r/   r0   	fail_card  r  zCard.TestHelpers.fail_cardc                 K   r  r  r/   r  r/   r/   r0   r       r  c              	   K   r  )r  r    r  r  r  r  r  r  r  r/   r/   r0   r    r  c                    r  )r  r    r  r  r  r  Nr  r  r/   r/   r0   _cls_fail_card_async%  r  z%Card.TestHelpers._cls_fail_card_asyncc                    r  r  r/   r  r/   r/   r0   fail_card_async7  r  z Card.TestHelpers.fail_card_asyncc                    r  r  r/   r  r/   r/   r0   r  A  r	  r  c              	      r
  )r  r    r  r  r  r  r  Nr  r  r/   r/   r0   r  J  r  r   c                 K   r  )g
            Updates the shipping status of the specified Issuing Card object to returned.
            r    r  5/v1/test_helpers/issuing/cards/{card}/shipping/returnr  r  r  r  r/   r/   r0   _cls_return_card\  r  z!Card.TestHelpers._cls_return_cardc                 K   r  r  Nr/   r  r/   r/   r0   return_cardn  r  zCard.TestHelpers.return_cardc                 K   r  r  r/   r  r/   r/   r0   r  x  r  r  c              	   K   r  )r  r    r  r  r  r  r  r  r  r/   r/   r0   r    r  c                    r  )r  r    r  r  r  r  Nr  r  r/   r/   r0   _cls_return_card_async  r  z'Card.TestHelpers._cls_return_card_asyncc                    r  r  r/   r  r/   r/   r0   return_card_async  r  z"Card.TestHelpers.return_card_asyncc                    r  r  r/   r  r/   r/   r0   r    r	  r  c              	      r
  )r  r    r  r  r  r  r  Nr  r  r/   r/   r0   r    r  r   c                 K   r  )f
            Updates the shipping status of the specified Issuing Card object to shipped.
            r    r  3/v1/test_helpers/issuing/cards/{card}/shipping/shipr  r  r  r  r/   r/   r0   _cls_ship_card  r  zCard.TestHelpers._cls_ship_cardc                 K   r  r  Nr/   r  r/   r/   r0   	ship_card  r  zCard.TestHelpers.ship_cardc                 K   r  r   r/   r  r/   r/   r0   r!    r  r  c              	   K   r  )r  r    r  r  r  r  r  r  r  r/   r/   r0   r!    r  c                    r  )r  r    r  r  r  r  Nr  r  r/   r/   r0   _cls_ship_card_async  r  z%Card.TestHelpers._cls_ship_card_asyncc                    r  r   r/   r  r/   r/   r0   ship_card_async  r  z Card.TestHelpers.ship_card_asyncc                    r  r   r/   r  r/   r/   r0   r#    r	  r"  c              	      r
  )r  r    r  r  r  r  r  Nr  r  r/   r/   r0   r#  $  r  r   c                 K   r  )   
            Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later.
            r    r  5/v1/test_helpers/issuing/cards/{card}/shipping/submitr  r  r  r  r/   r/   r0   _cls_submit_card6  r  z!Card.TestHelpers._cls_submit_cardc                 K   r  r$  Nr/   r  r/   r/   r0   submit_cardH  r  zCard.TestHelpers.submit_cardc                 K   r  r'  r/   r  r/   r/   r0   r(  R  r  r&  c              	   K   r  )r$  r    r  r%  r  r  r  r  r  r/   r/   r0   r(  [  r  c                    r  )r$  r    r  r%  r  r  Nr  r  r/   r/   r0   _cls_submit_card_asyncm  r  z'Card.TestHelpers._cls_submit_card_asyncc                    r  r'  r/   r  r/   r/   r0   submit_card_async  r  z"Card.TestHelpers.submit_card_asyncc                    r  r'  r/   r  r/   r/   r0   r*    r	  r)  c              	      r
  )r$  r    r  r%  r  r  r  Nr  r  r/   r/   r0   r*    r  N)r*   r+   r,   r   r.   classmethodr-   r   r  r   staticmethodr  r	   r  r  r  r  r  r  r  r  r  r  r  r!  r"  r#  r&  r(  r)  r*  r/   r/   r/   r0   TestHelpers  s8  
 r-  c                 C   s
   |  | S )N)r-  )r  r/   r/   r0   test_helpers  s   
zCard.test_helpers)r  r  r  N)"r*   r+   r,   __doc__r!   r   r   r.   r   r`   r  r  r-   r   r^   r_   r   r   r+  r   r  r  r   r  r  r  r  r  r  r   r-  propertyr.  r=   r/   r/   r/   r0   r    "   s   
         ;)

    )

r    N)6stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._test_helpersr   stripe._updateable_api_resourcer   stripe._utilr	   r
   typingr   r   r   r   r   r   typing_extensionsr   r   r   r   stripe.issuing._cardholderr   &stripe.issuing._personalization_designr   )stripe.params.issuing._card_create_paramsr   /stripe.params.issuing._card_deliver_card_paramsr   ,stripe.params.issuing._card_fail_card_paramsr   'stripe.params.issuing._card_list_paramsr   )stripe.params.issuing._card_modify_paramsr   +stripe.params.issuing._card_retrieve_paramsr   .stripe.params.issuing._card_return_card_paramsr   ,stripe.params.issuing._card_ship_card_paramsr   .stripe.params.issuing._card_submit_card_paramsr   r    r-  r  r/   r/   r/   r0   <module>   sV    
               