Class: Pago::V2026_04::Services::Meters
- Defined in:
- lib/pago/v2026_04/services/meters.rb,
sig/pago/v2026_04/generated.rbs
Instance Attribute Summary
Attributes inherited from Service
Instance Method Summary collapse
-
#create(body: {}) ⇒ Models::Meter
Create a meter.
-
#get(id) ⇒ Models::Meter
Get a meter by ID.
-
#list(organization_id: nil, query: nil, is_archived: nil, page: 1, limit: 10, sorting: ["name"], metadata: nil) ⇒ Models::ListResourceMeter
List meters.
-
#list_each(organization_id: nil, query: nil, is_archived: nil, limit: 10, sorting: ["name"], metadata: nil) {|item| ... } ⇒ Pago::Paginator
Enumerate every item of
list, fetching pages on demand. -
#quantities(id, start_timestamp:, end_timestamp:, interval:, timezone: "UTC", customer_id: nil, external_customer_id: nil, customer_aggregation_function: nil, metadata: nil) ⇒ Models::MeterQuantities
Get quantities of a meter over a time period.
-
#update(id, body: {}) ⇒ Models::Meter
Update a meter.
Methods inherited from Service
Constructor Details
This class inherits a constructor from Pago::Service
Instance Method Details
#create(body: {}) ⇒ Models::Meter
Create a meter.
Scopes: meters:write
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/pago/v2026_04/services/meters.rb', line 52 def create(body: {}) data = client.request( http_method: "POST", path: "/v1/meters/", path_params: {}, query: {}, body: body, response_type: :json, errors: { 422 => Errors::HTTPValidationError } ) Models::Meter.from_json(data) end |
#get(id) ⇒ Models::Meter
Get a meter by ID.
Scopes: meters:read meters:write
74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/pago/v2026_04/services/meters.rb', line 74 def get(id) data = client.request( http_method: "GET", path: "/v1/meters/{id}", path_params: { "id" => id }, query: {}, response_type: :json, errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError } ) Models::Meter.from_json(data) end |
#list(organization_id: nil, query: nil, is_archived: nil, page: 1, limit: 10, sorting: ["name"], metadata: nil) ⇒ Models::ListResourceMeter
List meters.
Scopes: meters:read meters:write
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/pago/v2026_04/services/meters.rb', line 21 def list(organization_id: nil, query: nil, is_archived: nil, page: 1, limit: 10, sorting: ["name"], metadata: nil) data = client.request( http_method: "GET", path: "/v1/meters/", path_params: {}, query: { "organization_id" => organization_id, "query" => query, "is_archived" => is_archived, "page" => page, "limit" => limit, "sorting" => sorting, "metadata" => }, response_type: :json, errors: { 422 => Errors::HTTPValidationError } ) Models::ListResourceMeter.from_json(data) end |
#list_each(organization_id: nil, query: nil, is_archived: nil, limit: 10, sorting: ["name"], metadata: nil) {|item| ... } ⇒ Pago::Paginator
Enumerate every item of list, fetching pages on demand.
37 38 39 40 41 42 |
# File 'lib/pago/v2026_04/services/meters.rb', line 37 def list_each(organization_id: nil, query: nil, is_archived: nil, limit: 10, sorting: ["name"], metadata: nil, &block) paginator = ::Pago::Paginator.new do |page_number| list(organization_id: organization_id, query: query, is_archived: is_archived, page: page_number, limit: limit, sorting: sorting, metadata: ) end block ? paginator.each(&block) : paginator end |
#quantities(id, start_timestamp:, end_timestamp:, interval:, timezone: "UTC", customer_id: nil, external_customer_id: nil, customer_aggregation_function: nil, metadata: nil) ⇒ Models::MeterQuantities
Get quantities of a meter over a time period.
Scopes: meters:read meters:write
126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/pago/v2026_04/services/meters.rb', line 126 def quantities(id, start_timestamp:, end_timestamp:, interval:, timezone: "UTC", customer_id: nil, external_customer_id: nil, customer_aggregation_function: nil, metadata: nil) data = client.request( http_method: "GET", path: "/v1/meters/{id}/quantities", path_params: { "id" => id }, query: { "start_timestamp" => , "end_timestamp" => , "interval" => interval, "timezone" => timezone, "customer_id" => customer_id, "external_customer_id" => external_customer_id, "customer_aggregation_function" => customer_aggregation_function, "metadata" => }, response_type: :json, errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError } ) Models::MeterQuantities.from_json(data) end |
#update(id, body: {}) ⇒ Models::Meter
Update a meter.
Scopes: meters:write
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/pago/v2026_04/services/meters.rb', line 96 def update(id, body: {}) data = client.request( http_method: "PATCH", path: "/v1/meters/{id}", path_params: { "id" => id }, query: {}, body: body, response_type: :json, errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError } ) Models::Meter.from_json(data) end |