1<?php
2
3// File generated from our OpenAPI spec
4
5namespace Stripe\Service;
6
7class PriceService extends \Stripe\Service\AbstractService
8{
9    /**
10     * Returns a list of your prices.
11     *
12     * @param null|array $params
13     * @param null|array|\Stripe\Util\RequestOptions $opts
14     *
15     * @throws \Stripe\Exception\ApiErrorException if the request fails
16     *
17     * @return \Stripe\Collection
18     */
19    public function all($params = null, $opts = null)
20    {
21        return $this->requestCollection('get', '/v1/prices', $params, $opts);
22    }
23
24    /**
25     * Creates a new price for an existing product. The price can be recurring or
26     * one-time.
27     *
28     * @param null|array $params
29     * @param null|array|\Stripe\Util\RequestOptions $opts
30     *
31     * @throws \Stripe\Exception\ApiErrorException if the request fails
32     *
33     * @return \Stripe\Price
34     */
35    public function create($params = null, $opts = null)
36    {
37        return $this->request('post', '/v1/prices', $params, $opts);
38    }
39
40    /**
41     * Retrieves the price with the given ID.
42     *
43     * @param string $id
44     * @param null|array $params
45     * @param null|array|\Stripe\Util\RequestOptions $opts
46     *
47     * @throws \Stripe\Exception\ApiErrorException if the request fails
48     *
49     * @return \Stripe\Price
50     */
51    public function retrieve($id, $params = null, $opts = null)
52    {
53        return $this->request('get', $this->buildPath('/v1/prices/%s', $id), $params, $opts);
54    }
55
56    /**
57     * Updates the specified price by setting the values of the parameters passed. Any
58     * parameters not provided are left unchanged.
59     *
60     * @param string $id
61     * @param null|array $params
62     * @param null|array|\Stripe\Util\RequestOptions $opts
63     *
64     * @throws \Stripe\Exception\ApiErrorException if the request fails
65     *
66     * @return \Stripe\Price
67     */
68    public function update($id, $params = null, $opts = null)
69    {
70        return $this->request('post', $this->buildPath('/v1/prices/%s', $id), $params, $opts);
71    }
72}
73