portfoliomanager-rb 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,955 @@
1
+ require "net/http"
2
+
3
+ module PortfolioManager
4
+ module Services
5
+ # Meter Services
6
+ #
7
+ # The Meter Services allow you to manage meters within Portfolio Manager.
8
+ # These services support all meter categories: all fuels, water, Data Center
9
+ # IT energy meters, waste, and water and wastewater plant meters. The
10
+ # ability to define green power is also provided. You must be already
11
+ # connected to your customers to be able to manage their meters.
12
+ #
13
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter
14
+ module Meter
15
+ # Meter
16
+ module Meter
17
+ # Live Environment
18
+ module Live
19
+ # Add Meter
20
+ #
21
+ # This web service creates a meter for a specific property based on
22
+ # the information provided in the XML request and establishes all of
23
+ # the necessary meter sharing permissions between you and the
24
+ # Portfolio Manager user. It returns the unique identifier to the
25
+ # newly created meter and a link to the corresponding web service to
26
+ # retrieve it. The property must already be shared with you and you
27
+ # must have write access to the property.
28
+ #
29
+ # @param property_id [Integer]
30
+ # @param meter [PortfolioManager::Xml::MeterType, PortfolioManager::Xml::TypeOfWasteMeter]
31
+ # @param elename [nil, "meter", "wasteMeter"]
32
+ # @return [PortfolioManager::Xml::ResponseType]
33
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
34
+ # @raise [PortfolioManager::HTTPResponseError]
35
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/meter/post
36
+ def add_meter(property_id, meter, elename = nil)
37
+ request(Net::HTTP::Post, path_for("property", property_id, "meter"), {}, {}, meter, elename, PortfolioManager::Xml::ResponseType, basic_auth: true)
38
+ end
39
+
40
+ # Delete Meter
41
+ #
42
+ # This web service deletes a specified meter. The meter must already
43
+ # be shared with you.
44
+ #
45
+ # @param meter_id [Integer]
46
+ # @return [PortfolioManager::Xml::ResponseType]
47
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
48
+ # @raise [PortfolioManager::HTTPResponseError]
49
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/meter/delete
50
+ def delete_meter(meter_id)
51
+ request(Net::HTTP::Delete, path_for("meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
52
+ end
53
+
54
+ # Edit Meter
55
+ #
56
+ # This web service updates a specified meter based on the information
57
+ # provided in the XML request and establishes all of the necessary
58
+ # meter sharing permissions between you and the Portfolio Manager
59
+ # user. It returns the unique identifier to the meter and a link to
60
+ # the corresponding web service to retrieve it. The meter must already
61
+ # be shared with you and you must have write access to the meter.
62
+ #
63
+ # @param meter_id [Integer]
64
+ # @param meter [PortfolioManager::Xml::MeterType, PortfolioManager::Xml::TypeOfWasteMeter]
65
+ # @param elename [nil, "meter", "wasteMeter"]
66
+ # @return [PortfolioManager::Xml::ResponseType]
67
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
68
+ # @raise [PortfolioManager::HTTPResponseError]
69
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/meter/put
70
+ def edit_meter(meter_id, meter, elename = nil)
71
+ request(Net::HTTP::Put, path_for("meter", meter_id), {}, {}, meter, elename, PortfolioManager::Xml::ResponseType, basic_auth: true)
72
+ end
73
+
74
+ # Get ID Hierarchy for Meter
75
+ #
76
+ # This web service returns the accountId and propertyId that
77
+ # corresponds to a specific meter. The accountId returned is the
78
+ # Property Data Administrator (PDA). If the specified meter refers to
79
+ # an IT meter or a plant flow meter, then the corresponding
80
+ # propertyUseId that is associated to the specified meter is also
81
+ # returned, otherwise it is omitted. The meter must already be shared
82
+ # with you or you must have pending share access.
83
+ #
84
+ # @param meter_id [Integer]
85
+ # @return [PortfolioManager::Xml::HierarchyType, PortfolioManager::Xml::ResponseType]
86
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
87
+ # @raise [PortfolioManager::HTTPResponseError]
88
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/hierarchy/get
89
+ def get_id_hierarchy_for_meter(meter_id)
90
+ request(Net::HTTP::Get, path_for("idHierarchy", "meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::HierarchyType, basic_auth: true)
91
+ end
92
+
93
+ # Get Meter
94
+ #
95
+ # This web service retrieves information for a specific meter. The
96
+ # meter must already be shared with you.
97
+ #
98
+ # @param meter_id [Integer]
99
+ # @return [PortfolioManager::Xml::MeterType, PortfolioManager::Xml::ResponseType]
100
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
101
+ # @raise [PortfolioManager::HTTPResponseError]
102
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/meter/get
103
+ def get_meter(meter_id)
104
+ request(Net::HTTP::Get, path_for("meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::MeterType, basic_auth: true)
105
+ end
106
+
107
+ # Get Meter List
108
+ #
109
+ # This web service retrieves a list of all the meters for a specific
110
+ # property or just the meters that you have access to. The property
111
+ # must already be shared with you.
112
+ #
113
+ # @param property_id [Integer]
114
+ # @param my_access_only [Boolean]
115
+ # @return [PortfolioManager::Xml::ResponseType]
116
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
117
+ # @raise [PortfolioManager::HTTPResponseError]
118
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/meterList/get
119
+ def get_meter_list(property_id, my_access_only = false)
120
+ request(Net::HTTP::Get, path_for("property", property_id, "meter", "list"), {
121
+ "myAccessOnly" => my_access_only,
122
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
123
+ end
124
+
125
+ # Get What Changed Meter List
126
+ #
127
+ # This web service returns a list of meters that changed since a user
128
+ # specified date. The list of meters returned are account specific.
129
+ # The returned list only shows meters that you have permission to
130
+ # view. Results are returned in increments of 1,000 per set. Actions
131
+ # that trigger a meter to be included in the returned list may have
132
+ # been performed by any user with access to the meter. A list of user
133
+ # actions that trigger a meter to be included in the returned list can
134
+ # be found {https://energystar-mesa.force.com/PortfolioManager/s/article/Last-Modified-Metrics-What-types-of-edits-trigger-an-update-1600088554500 here}.
135
+ #
136
+ # @param customer_id [Integer]
137
+ # @param date [Date]
138
+ # @param next_page_key [nil, String]
139
+ # @param previous_page_key [nil, String]
140
+ # @return [PortfolioManager::Xml::ResponseType]
141
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
142
+ # @raise [PortfolioManager::HTTPResponseError]
143
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/getWhatChanged/get
144
+ def get_what_changed_meter_list(customer_id, date, next_page_key = nil, previous_page_key = nil)
145
+ request(Net::HTTP::Get, path_for("customer", customer_id, "meter", "whatChanged"), {
146
+ "date" => date.strftime("%Y-%m-%d"),
147
+ "nextPageKey" => next_page_key,
148
+ "previousPageKey" => previous_page_key,
149
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
150
+ end
151
+
152
+ # Get What Changed Meter List for a Specific Property
153
+ #
154
+ # This web service returns a list of meters within a specified
155
+ # property that changed since a user specified date. The list of
156
+ # meters returned are property specific. The returned list only shows
157
+ # meters that you have permission to view. Results are returned in
158
+ # increments of 1,000 per set. Actions that trigger a meter to be
159
+ # included in the returned list may have been performed by any user
160
+ # with access to the meter. A list of user actions that trigger a
161
+ # meter to be included in the returned list can be found {https://energystar-mesa.force.com/PortfolioManager/s/article/Last-Modified-Metrics-What-types-of-edits-trigger-an-update-1600088554500 here}.
162
+ #
163
+ # @param property_id [Integer]
164
+ # @param date [Date]
165
+ # @param next_page_key [nil, String]
166
+ # @param previous_page_key [nil, String]
167
+ # @return [PortfolioManager::Xml::ResponseType]
168
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
169
+ # @raise [PortfolioManager::HTTPResponseError]
170
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/getWhatChangedPropertyMeter/get
171
+ def get_what_changed_meter_list_for_a_specific_property(property_id, date, next_page_key = nil, previous_page_key = nil)
172
+ request(Net::HTTP::Get, path_for("property", property_id, "meter", "whatChanged"), {
173
+ "date" => date.strftime("%Y-%m-%d"),
174
+ "nextPageKey" => next_page_key,
175
+ "previousPageKey" => previous_page_key,
176
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
177
+ end
178
+ end
179
+
180
+ # Test Environment
181
+ module Test
182
+ end
183
+ end
184
+
185
+ # Property Meter Association
186
+ module PropertyMeterAssociation
187
+ # Live Environment
188
+ module Live
189
+ # Get Associated Property Meters
190
+ #
191
+ # This web service returns a list of meters that are associated to a
192
+ # specific property.
193
+ #
194
+ # @param property_id [Integer]
195
+ # @return [PortfolioManager::Xml::MeterPropertyAssociationListType, PortfolioManager::Xml::ResponseType]
196
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
197
+ # @raise [PortfolioManager::HTTPResponseError]
198
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyAssociation/get
199
+ def get_associated_property_meters(property_id)
200
+ request(Net::HTTP::Get, path_for("association", "property", property_id, "meter"), {}, {}, nil, nil, PortfolioManager::Xml::MeterPropertyAssociationListType, basic_auth: true)
201
+ end
202
+
203
+ # Associate Meter to a Property
204
+ #
205
+ # This web service associates a single meter to a property. You must
206
+ # have any of the following sharing permissions:
207
+ # - full access on the property and read only access on the meter
208
+ # - read only access on the property and full access on the meter
209
+ # - full access for both the property and meter
210
+ #
211
+ # Any other meters currently associated to the property are
212
+ # unaffected. Any property representation currently assigned to the
213
+ # property (if any) is unaffected.
214
+ #
215
+ # @param property_id [Integer]
216
+ # @param meter_id [Integer]
217
+ # @return [PortfolioManager::Xml::ResponseType]
218
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
219
+ # @raise [PortfolioManager::HTTPResponseError]
220
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyAssociationSingle/post
221
+ def associate_meter_to_a_property(property_id, meter_id)
222
+ request(Net::HTTP::Post, path_for("association", "property", property_id, "meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
223
+ end
224
+
225
+ # Associate Meters to a Property
226
+ #
227
+ # This web service associates a set of meters to a property based on
228
+ # the set of meters provided in the XML request. If a set of energy
229
+ # meters is only provided then the association is only performed using
230
+ # that set of energy meters and any existing water meter associations
231
+ # are not affected. Similarly, if a set of water meters is only
232
+ # provided then the association is only performed using that set of
233
+ # water meters and any existing energy meter associations are not
234
+ # affected. All submissions overwrite/replace previous settings.
235
+ #
236
+ # @param property_id [Integer]
237
+ # @param meter_property_association_list [PortfolioManager::Xml::MeterPropertyAssociationListType]
238
+ # @return [PortfolioManager::Xml::ResponseType]
239
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
240
+ # @raise [PortfolioManager::HTTPResponseError]
241
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyAssociation/post
242
+ def associate_meters_to_a_property(property_id, meter_property_association_list)
243
+ request(Net::HTTP::Post, path_for("association", "property", property_id, "meter"), {}, {}, meter_property_association_list, "meterPropertyAssociationList", PortfolioManager::Xml::ResponseType, basic_auth: true)
244
+ end
245
+
246
+ # Disassociate Meter from a Property
247
+ #
248
+ # This web service disassociates a specific meter from a given
249
+ # property.
250
+ #
251
+ # @param property_id [Integer]
252
+ # @param meter_id [Integer]
253
+ # @return [PortfolioManager::Xml::ResponseType]
254
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
255
+ # @raise [PortfolioManager::HTTPResponseError]
256
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyAssociation/delete
257
+ def disassociate_meter_from_a_property(property_id, meter_id)
258
+ request(Net::HTTP::Delete, path_for("association", "property", property_id, "meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
259
+ end
260
+ end
261
+
262
+ # Test Environment
263
+ module Test
264
+ end
265
+ end
266
+
267
+ # Property Use Meter Assocation
268
+ module PropertyUseMeterAssociation
269
+ # Live Environment
270
+ module Live
271
+ # Get Associated Property Use Meters
272
+ #
273
+ # This web service returns a list of meters that are associated to a
274
+ # specific property use.
275
+ #
276
+ # @param property_use_id [Integer]
277
+ # @return [PortfolioManager::Xml::MeterListType, PortfolioManager::Xml::ResponseType]
278
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
279
+ # @raise [PortfolioManager::HTTPResponseError]
280
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyUseAssociation/get
281
+ def get_associated_property_use_meters(property_use_id)
282
+ request(Net::HTTP::Get, path_for("association", "propertyUse", property_use_id, "meter"), {}, {}, nil, nil, PortfolioManager::Xml::MeterListType, basic_auth: true)
283
+ end
284
+
285
+ # Associate Meter to a Property Use
286
+ #
287
+ # This web service associates a single meter to a property use. You
288
+ # must have any of the following sharing permissions:
289
+ # - full access on the property and read only access on the meter
290
+ # - read only access on the property and full access on the meter
291
+ # - full access for both the property and meter
292
+ #
293
+ # Any other meters currently associated to the property use are
294
+ # unaffected.
295
+ #
296
+ # @param property_use_id [Integer]
297
+ # @param meter_id [Integer]
298
+ # @return [PortfolioManager::Xml::ResponseType]
299
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
300
+ # @raise [PortfolioManager::HTTPResponseError]
301
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyUseAssociationSingle/post
302
+ def associate_meter_to_a_property_use(property_use_id, meter_id)
303
+ request(Net::HTTP::Post, path_for("association", "propertyUse", property_use_id, "meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
304
+ end
305
+
306
+ # Associate Meters to a Property Use
307
+ #
308
+ # This web service associates a set of meters to a property use based
309
+ # on the set of meters provided in the XML request. All submissions
310
+ # overwrite/replace previous settings.
311
+ #
312
+ # @param property_use_id [Integer]
313
+ # @param meter_property_use_association_list [PortfolioManager::Xml::MeterListType]
314
+ # @return [PortfolioManager::Xml::ResponseType]
315
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
316
+ # @raise [PortfolioManager::HTTPResponseError]
317
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyUseAssociation/post
318
+ def associate_meters_to_a_property_use(property_use_id, meter_property_use_association_list)
319
+ request(Net::HTTP::Post, path_for("association", "propertyUse", property_use_id, "meter"), {}, {}, meter_property_use_association_list, "meterPropertyUseAssociationList", PortfolioManager::Xml::ResponseType, basic_auth: true)
320
+ end
321
+
322
+ # Disassociate Meter from a Property Use
323
+ #
324
+ # This web service disassociates a specific meter from a given
325
+ # property use.
326
+ #
327
+ # @param property_use_id [Integer]
328
+ # @param meter_id [Integer]
329
+ # @return [PortfolioManager::Xml::ResponseType]
330
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
331
+ # @raise [PortfolioManager::HTTPResponseError]
332
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/propertyUseAssociation/delete
333
+ def disassociate_meter_from_a_property_use(property_use_id, meter_id)
334
+ request(Net::HTTP::Delete, path_for("association", "propertyUse", property_use_id, "meter", meter_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
335
+ end
336
+ end
337
+
338
+ # Test Environment
339
+ module Test
340
+ end
341
+ end
342
+
343
+ # Consumption Data
344
+ module ConsumptionData
345
+ # Live Environment
346
+ module Live
347
+ # Add Meter Consumption Data
348
+ #
349
+ # This web service adds consumption data to a specific meter based on
350
+ # the information provided in the XML request. It returns the unique
351
+ # identifier to each consumption data entry and a link to the
352
+ # corresponding web service to retrieve it. The meter must already be
353
+ # shared with you and you must have write access to the meter. This
354
+ # web service supports all meter types (i.e., electric, natural gas,
355
+ # water, IT, etc.). Green power information can also be added for
356
+ # renewable energy meter types. Demand tracking is also available for
357
+ # electric grid-purchase meters. A maximum of 120 consumption records
358
+ # is allowed.
359
+ #
360
+ # @param meter_id [Integer]
361
+ # @param meter_data [PortfolioManager::Xml::MeterDataType]
362
+ # @return [PortfolioManager::Xml::MeterDataType, PortfolioManager::Xml::ResponseType]
363
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
364
+ # @raise [PortfolioManager::HTTPResponseError]
365
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/post
366
+ def add_meter_consumption_data(meter_id, meter_data)
367
+ request(Net::HTTP::Post, path_for("meter", meter_id, "consumptionData"), {}, {}, meter_data, "meterData", PortfolioManager::Xml::MeterDataType, basic_auth: true)
368
+ end
369
+
370
+ # Delete Consumption Data
371
+ #
372
+ # This web service deletes a specific consumption data. The
373
+ # corresponding meter must already be shared with you and you must
374
+ # have write access.
375
+ #
376
+ # @param consumption_data_id [Integer]
377
+ # @return [PortfolioManager::Xml::ResponseType]
378
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
379
+ # @raise [PortfolioManager::HTTPResponseError]
380
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/delete
381
+ def delete_consumption_data(consumption_data_id)
382
+ request(Net::HTTP::Delete, path_for("consumptionData", consumption_data_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
383
+ end
384
+
385
+ # Delete Meter Consumption Data
386
+ #
387
+ # This web service deletes consumption data from a specific meter
388
+ # based on a specified optional date range. The meter must already be
389
+ # shared to you and you must have read write access. This web service
390
+ # supports the following meter types; energy, water, data center IT,
391
+ # drinking/waste water flow. Deleting the consumption data is
392
+ # permanent and cannot be undone.
393
+ #
394
+ # @note If you misspell the "startDate" or "endDate" parameter then
395
+ # the resulting behavior is equivalent to if the parameter was
396
+ # omitted. For example, if you run this web service and misspelled
397
+ # both date range parameters then all of the consumption data for
398
+ # that meter will be deleted which is the default behavior.
399
+ #
400
+ # @param meter_id [Integer]
401
+ # @param start_date [nil, Date]
402
+ # @param end_date [nil, Date]
403
+ # @return [PortfolioManager::Xml::ResponseType]
404
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
405
+ # @raise [PortfolioManager::HTTPResponseError]
406
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/delete
407
+ def delete_meter_consumption_data(meter_id, start_date = nil, end_date = nil)
408
+ request(Net::HTTP::Delete, path_for("meter", meter_id, "consumptionData"), {
409
+ "startDate" => start_date.nil? ? nil : start_date.strftime("%Y-%m-%d"),
410
+ "endDate" => end_date.nil? ? nil : end_date.strftime("%Y-%m-%d"),
411
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
412
+ end
413
+
414
+ # Edit Consumption Data
415
+ #
416
+ # This web service updates a specific meter consumption data record
417
+ # based on the information provided in the XML request. The
418
+ # corresponding meter must already be shared with you and you must
419
+ # have write access to the meter.
420
+ #
421
+ # @param consumption_data_id [Integer]
422
+ # @param meter_consumption [PortfolioManager::Xml::MeterConsumptionType]
423
+ # @return [PortfolioManager::Xml::ResponseType]
424
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
425
+ # @raise [PortfolioManager::HTTPResponseError]
426
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/put
427
+ def edit_consumption_data(consumption_data_id, meter_consumption)
428
+ request(Net::HTTP::Put, path_for("consumptionData", consumption_data_id), {}, {}, meter_consumption, "meterConsumption", PortfolioManager::Xml::ResponseType, basic_auth: true)
429
+ end
430
+
431
+ # Get ID Hierarchy for Consumption Data
432
+ #
433
+ # This web service returns the accountId, propertyId, and meterId that
434
+ # correspond to a specific consumption data record. The accountId
435
+ # returned is the Property Data Administrator (PDA). If the specified
436
+ # consumption data record refers to an IT meter or a plant flow meter,
437
+ # then the corresponding propertyUseId that is associated to the meter
438
+ # is also returned, otherwise it is omitted. The corresponding meter
439
+ # must already be shared with you or you must have pending share
440
+ # access.
441
+ #
442
+ # @param consumption_data_id [Integer]
443
+ # @return [PortfolioManager::Xml::ResponseType]
444
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
445
+ # @raise [PortfolioManager::HTTPResponseError]
446
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/put
447
+ def get_id_hierarchy_for_consumption_data(consumption_data_id)
448
+ request(Net::HTTP::Get, path_for("idHierarchy", "consumptionData", consumption_data_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
449
+ end
450
+
451
+ # Get Meter Consumption Data
452
+ #
453
+ # This web service retrieves consumption data for a specific meter.
454
+ # The meter must already be shared with you. The consumption data is
455
+ # returned in sets of 120. An optional date range can specified to
456
+ # return a certain set of consumption records.
457
+ #
458
+ # @param meter_id [Integer]
459
+ # @param page [Integer]
460
+ # @param start_date [nil, Date]
461
+ # @param end_date [nil, Date]
462
+ # @return [PortfolioManager::Xml::MeterDataType, PortfolioManager::Xml::ResponseType]
463
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
464
+ # @raise [PortfolioManager::HTTPResponseError]
465
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionData/get
466
+ def get_meter_consumption_data(meter_id, page = 1, start_date = nil, end_date = nil)
467
+ request(Net::HTTP::Get, path_for("meter", meter_id, "consumptionData"), {
468
+ "page" => page,
469
+ "startDate" => start_date.nil? ? nil : start_date.strftime("%Y-%m-%d"),
470
+ "endDate" => end_date.nil? ? nil : end_date.strftime("%Y-%m-%d"),
471
+ }, {}, nil, nil, PortfolioManager::Xml::MeterDataType, basic_auth: true)
472
+ end
473
+
474
+ # Get What Changed Consumption Data Meter List
475
+ #
476
+ # This web service returns a list of meters that have had their
477
+ # consumption data changed since a user specified date. The list of
478
+ # meters returned are account specific. The returned list only shows
479
+ # meters that you have permission to view. Results are returned in
480
+ # increments of 1,000 per set. Consumption data edits that trigger a
481
+ # meter to be included in the returned list may have been performed by
482
+ # any user with write access to the meter. The list returns links to
483
+ # each meter's consumption data.
484
+ #
485
+ # @param customer_id [Integer]
486
+ # @param date [Date]
487
+ # @param next_page_key [nil, String]
488
+ # @param previous_page_key [nil, String]
489
+ # @return [PortfolioManager::Xml::ResponseType]
490
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
491
+ # @raise [PortfolioManager::HTTPResponseError]
492
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/consumptionDataGetWhatChanged/get
493
+ def get_what_changed_consumption_data_meter_list(customer_id, date, next_page_key = nil, previous_page_key = nil)
494
+ request(Net::HTTP::Get, path_for("customer", customer_id, "meter", "consumptionData", "whatChanged"), {
495
+ "date" => date.strftime("%Y-%m-%d"),
496
+ "nextPageKey" => next_page_key,
497
+ "previousPageKey" => previous_page_key,
498
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
499
+ end
500
+ end
501
+
502
+ # Test Environment
503
+ module Test
504
+ end
505
+ end
506
+
507
+ # Waste Data
508
+ module WasteData
509
+ # Live Environment
510
+ module Live
511
+ # Add Meter Waste Data
512
+ #
513
+ # This web service adds waste data to a specific meter based on the
514
+ # information provided in the XML request. It returns the unique
515
+ # identifier to each waste data entry. The meter must already be
516
+ # shared with you and you must have write access to the meter. A
517
+ # maximum of 120 waste data records is allowed.
518
+ #
519
+ # @param meter_id [Integer]
520
+ # @param waste_data_list [PortfolioManager::Xml::WasteMeterDataType]
521
+ # @return [PortfolioManager::Xml::WasteMeterDataType, PortfolioManager::Xml::ResponseType]
522
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
523
+ # @raise [PortfolioManager::HTTPResponseError]
524
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/wasteData/post
525
+ def add_meter_waste_data(meter_id, waste_data_list)
526
+ request(Net::HTTP::Post, path_for("meter", meter_id, "wasteData"), {}, {}, waste_data_list, "wasteDataList", PortfolioManager::Xml::WasteMeterDataType, basic_auth: true)
527
+ end
528
+
529
+ # Delete Waste Data
530
+ #
531
+ # This web service deletes a specific waste data. The corresponding
532
+ # meter must already be shared with you and you must have write
533
+ # access.
534
+ #
535
+ # @param waste_data_id [Integer]
536
+ # @return [PortfolioManager::Xml::ResponseType]
537
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
538
+ # @raise [PortfolioManager::HTTPResponseError]
539
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/wasteData/delete
540
+ def delete_waste_data(waste_data_id)
541
+ request(Net::HTTP::Delete, path_for("wasteData", waste_data_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
542
+ end
543
+
544
+ # Delete Meter Waste Data
545
+ #
546
+ # This web service deletes waste data from a specified meter based on
547
+ # a specified optional date range. The meter must already be shared to
548
+ # you and you must have read write access. This web service only
549
+ # supports waste meters. Deleting the waste data is permanent and
550
+ # cannot be undone.
551
+ #
552
+ # @note If you misspell the "startDate" or "endDate" parameter then
553
+ # the resulting behavior is equivalent to if the parameter was
554
+ # omitted. For example, if you run this web service and misspelled
555
+ # both date range parameters then all of the waste data for that
556
+ # meter will be deleted which is the default behavior.
557
+ #
558
+ # @param meter_id [Integer]
559
+ # @param start_date [nil, Date]
560
+ # @param end_date [nil, Date]
561
+ # @return [PortfolioManager::Xml::ResponseType]
562
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
563
+ # @raise [PortfolioManager::HTTPResponseError]
564
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/allWasteData/delete
565
+ def delete_meter_waste_data(meter_id, start_date = nil, end_date = nil)
566
+ request(Net::HTTP::Delete, path_for("meter", meter_id, "wasteData"), {
567
+ "startDate" => start_date.nil? ? nil : start_date.strftime("%Y-%m-%d"),
568
+ "endDate" => end_date.nil? ? nil : end_date.strftime("%Y-%m-%d"),
569
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
570
+ end
571
+
572
+ # Edit Waste Data
573
+ #
574
+ # This web service updates a specific waste meter data record based on
575
+ # the information provided in the XML request. The corresponding meter
576
+ # must already be shared with you and you must have write access to
577
+ # the meter.
578
+ #
579
+ # @param waste_data_id [Integer]
580
+ # @param waste_data [PortfolioManager::Xml::WasteMeterEntryType]
581
+ # @return [PortfolioManager::Xml::ResponseType]
582
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
583
+ # @raise [PortfolioManager::HTTPResponseError]
584
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/wasteData/put
585
+ def edit_waste_data(waste_data_id, waste_data)
586
+ request(Net::HTTP::Put, path_for("wasteData", waste_data_id), {}, {}, waste_data, "wasteData", PortfolioManager::Xml::ResponseType, basic_auth: true)
587
+ end
588
+
589
+ # Get ID Hierarchy for Waste Data
590
+ #
591
+ # This web service returns the accountId, propertyId, and meterId that
592
+ # correspond to a specific waste data record. The accountId returned
593
+ # is the Property Data Administrator (PDA). The corresponding meter
594
+ # must already be shared with you or you must have pending share
595
+ # access.
596
+ #
597
+ # @param waste_data_id [Integer]
598
+ # @return [PortfolioManager::Xml::ResponseType]
599
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
600
+ # @raise [PortfolioManager::HTTPResponseError]
601
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/wasteDataHierarchy/get
602
+ def get_id_hierarchy_for_waste_data(waste_data_id)
603
+ request(Net::HTTP::Get, path_for("idHierarchy", "wasteData", waste_data_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
604
+ end
605
+
606
+ # Get Meter Waste Data
607
+ #
608
+ # This web service retrieves waste data for a specific meter. The
609
+ # meter must already be shared with you. The waste data is returned in
610
+ # sets of 120. An optional date range can be specified to return a
611
+ # certain set of waste data records.
612
+ #
613
+ # @param meter_id [Integer]
614
+ # @param page [Integer]
615
+ # @param start_date [nil, Date]
616
+ # @param end_date [nil, Date]
617
+ # @return [PortfolioManager::Xml::WasteMeterDataType, PortfolioManager::Xml::ResponseType]
618
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
619
+ # @raise [PortfolioManager::HTTPResponseError]
620
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/wasteData/get
621
+ def get_meter_waste_data(meter_id, page = 1, start_date = nil, end_date = nil)
622
+ request(Net::HTTP::Get, path_for("meter", meter_id, "wasteData"), {
623
+ "page" => page,
624
+ "startDate" => start_date.nil? ? nil : start_date.strftime("%Y-%m-%d"),
625
+ "endDate" => end_date.nil? ? nil : end_date.strftime("%Y-%m-%d"),
626
+ }, {}, nil, nil, PortfolioManager::Xml::WasteMeterDataType, basic_auth: true)
627
+ end
628
+
629
+ # Get What Changed Waste Data Meter List
630
+ #
631
+ # This web service returns a list of waste meters that have had their
632
+ # consumption data changed since a user specified date. The list of
633
+ # waste meters returned are account specific. The returned list only
634
+ # shows waste meters that you have permission to view. Results are
635
+ # returned in increments of 1,000 per set. Waste data edits that
636
+ # trigger a waste meter to be included in the returned list may have
637
+ # been performed by any user with write access to the meter. The list
638
+ # returns links to each meter's waste data.
639
+ #
640
+ # @param customer_id [Integer]
641
+ # @param date [Date]
642
+ # @param next_page_key [nil, String]
643
+ # @param previous_page_key [nil, String]
644
+ # @return [PortfolioManager::Xml::ResponseType]
645
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
646
+ # @raise [PortfolioManager::HTTPResponseError]
647
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/wasteDataGetWhatChanged/get
648
+ def get_what_changed_waste_data_meter_list(customer_id, date, next_page_key = nil, previous_page_key = nil)
649
+ request(Net::HTTP::Get, path_for("customer", customer_id, "meter", "wasteData", "whatChanged"), {
650
+ "date" => date.strftime("%Y-%m-%d"),
651
+ "nextPageKey" => next_page_key,
652
+ "previousPageKey" => previous_page_key,
653
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
654
+ end
655
+ end
656
+
657
+ # Test Environment
658
+ module Test
659
+ end
660
+ end
661
+
662
+ # Unique Identifiers
663
+ module UniqueIdentifiers
664
+ # Live Environment
665
+ module Live
666
+ # Add Meter Identifier Value
667
+ #
668
+ # This web service adds a name and value to a specific additional
669
+ # meter identifier for a given meter based on the information provided
670
+ # in the XML request.
671
+ #
672
+ # @param meter_id [Integer]
673
+ # @param additional_identifier [PortfolioManager::Xml::AdditionalIdentifier]
674
+ # @return [PortfolioManager::Xml::ResponseType]
675
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
676
+ # @raise [PortfolioManager::HTTPResponseError]
677
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/identifier/post
678
+ def add_meter_identifier_value(meter_id, additional_identifier)
679
+ request(Net::HTTP::Post, path_for("meter", meter_id, "identifier"), {}, {}, additional_identifier, "additionalIdentifier", PortfolioManager::Xml::ResponseType, basic_auth: true)
680
+ end
681
+
682
+ # Delete Meter Identifier Value
683
+ #
684
+ # This web service deletes the meter identifier value for a specific
685
+ # meter and meter identifier.
686
+ #
687
+ # @param meter_id [Integer]
688
+ # @param identifier_id [Integer]
689
+ # @return [PortfolioManager::Xml::ResponseType]
690
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
691
+ # @raise [PortfolioManager::HTTPResponseError]
692
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/identifier/delete
693
+ def delete_meter_identifier_value(meter_id, identifier_id)
694
+ request(Net::HTTP::Delete, path_for("meter", meter_id, "identifier", identifier_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
695
+ end
696
+
697
+ # Edit Meter Identifier Value
698
+ #
699
+ # This web service updates the meter identifier value for a specific
700
+ # meter based on the information provided in the XML request.
701
+ #
702
+ # @param meter_id [Integer]
703
+ # @param identifier_id [Integer]
704
+ # @param additional_identifier [PortfolioManager::Xml::AdditionalIdentifier]
705
+ # @return [PortfolioManager::Xml::ResponseType]
706
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
707
+ # @raise [PortfolioManager::HTTPResponseError]
708
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/identifier/put
709
+ def edit_meter_identifier_value(meter_id, identifier_id, additional_identifier)
710
+ request(Net::HTTP::Put, path_for("meter", meter_id, "identifier", identifier_id), {}, {}, additional_identifier, "additionalIdentifier", PortfolioManager::Xml::ResponseType, basic_auth: true)
711
+ end
712
+
713
+ # Get All Meter Identifier List
714
+ #
715
+ # This web service retrieves a list of all of the unique identifiers
716
+ # for all meters in a specified property. These identifiers are used
717
+ # to provide additional information on a meter. You must have at least
718
+ # read only access on the meter to view the unique identifiers.
719
+ #
720
+ # @param property_id [Integer]
721
+ # @return [PortfolioManager::Xml::ResponseType]
722
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
723
+ # @raise [PortfolioManager::HTTPResponseError]
724
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/identifierList/get
725
+ def get_all_meter_identifier_list(property_id)
726
+ request(Net::HTTP::Get, path_for("property", property_id, "meter", "identifier", "list"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
727
+ end
728
+
729
+ # Get Meter Identifier List
730
+ #
731
+ # This web service retrieves a list of all of the standard and unique
732
+ # identifiers that are currently approved for use by EPA. These
733
+ # identifiers are used to provide additional information on a meter.
734
+ #
735
+ # @return [PortfolioManager::Xml::AdditionalIdentifierTypes, PortfolioManager::Xml::ResponseType]
736
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
737
+ # @raise [PortfolioManager::HTTPResponseError]
738
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/meterIdentifierList/get
739
+ def get_meter_identifier_list
740
+ request(Net::HTTP::Get, path_for("meter", "identifier", "list"), {}, {}, nil, nil, PortfolioManager::Xml::AdditionalIdentifierTypes, basic_auth: true)
741
+ end
742
+
743
+ # Get Meter Identifier Value
744
+ #
745
+ # This web service retrieves the meter identifier value for a specific
746
+ # meter and meter identifier.
747
+ #
748
+ # @param meter_id [Integer]
749
+ # @param identifier_id [Integer]
750
+ # @return [PortfolioManager::Xml::AdditionalIdentifier, PortfolioManager::Xml::ResponseType]
751
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
752
+ # @raise [PortfolioManager::HTTPResponseError]
753
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/identifier/get
754
+ def get_meter_identifier_value(meter_id, identifier_id)
755
+ request(Net::HTTP::Get, path_for("meter", meter_id, "identifier", identifier_id), {}, {}, nil, nil, PortfolioManager::Xml::AdditionalIdentifier, basic_auth: true)
756
+ end
757
+
758
+ # Get Meter Identifier Value List
759
+ #
760
+ # This web service retrieves a list of meter identifier values for a
761
+ # specific meter specified in the URL.
762
+ #
763
+ # @param meter_id [Integer]
764
+ # @return [PortfolioManager::Xml::AdditionalIdentifiers, PortfolioManager::Xml::ResponseType]
765
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
766
+ # @raise [PortfolioManager::HTTPResponseError]
767
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/identifierListForProperty/get
768
+ def get_meter_identifier_value_list(meter_id)
769
+ request(Net::HTTP::Get, path_for("meter", meter_id, "identifier", "list"), {}, {}, nil, nil, PortfolioManager::Xml::AdditionalIdentifiers, basic_auth: true)
770
+ end
771
+ end
772
+
773
+ # Test Environment
774
+ module Test
775
+ end
776
+ end
777
+
778
+ # Meter Aggregation
779
+ module MeterAggregation
780
+ # Live Environment
781
+ module Live
782
+ # Add Individual Meter to Aggregated Meter
783
+ #
784
+ # This web service adds an individual meter to be included in the
785
+ # total for the aggregate meter. The aggregate meter must already be
786
+ # shared with you and you must have write access.
787
+ #
788
+ # @param meter_id [Integer]
789
+ # @param individual_meter [PortfolioManager::Xml::IndividualMeter]
790
+ # @return [PortfolioManager::Xml::ResponseType]
791
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
792
+ # @raise [PortfolioManager::HTTPResponseError]
793
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/individual/post
794
+ def add_individual_meter_to_aggregated_meter(meter_id, individual_meter)
795
+ request(Net::HTTP::Post, path_for("meter", meter_id, "individual"), {}, {}, individual_meter, "individualMeter", PortfolioManager::Xml::ResponseType, basic_auth: true)
796
+ end
797
+
798
+ # Delete All Individual Meters of an Aggregate Meter
799
+ #
800
+ # This web service deletes all information of individual meters that
801
+ # are included in the total for the aggregate meter. The aggregate
802
+ # meter must already be shared with you and you must have write
803
+ # access.
804
+ #
805
+ # @param meter_id [Integer]
806
+ # @return [PortfolioManager::Xml::ResponseType]
807
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
808
+ # @raise [PortfolioManager::HTTPResponseError]
809
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/aggregationList/delete
810
+ def delete_all_individual_meters_of_an_aggregate_meter(meter_id)
811
+ request(Net::HTTP::Delete, path_for("meter", meter_id, "individual"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
812
+ end
813
+
814
+ # Delete Individual Meter of an Aggregated Meter
815
+ #
816
+ # This web service deletes information for an individual meter that is
817
+ # included in the total for the aggregate meter. The aggregate meter
818
+ # must already be shared with you and you must have write access.
819
+ #
820
+ # @param individual_meter_id [Integer]
821
+ # @return [PortfolioManager::Xml::ResponseType]
822
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
823
+ # @raise [PortfolioManager::HTTPResponseError]
824
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/individual/delete
825
+ def delete_individual_meter_of_an_aggregated_meter(individual_meter_id)
826
+ request(Net::HTTP::Delete, path_for("meter", "individual", individual_meter_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
827
+ end
828
+
829
+ # Get Individual Meter of an Aggregated Meter
830
+ #
831
+ # This web service retrieves information for an individual meter that
832
+ # is included in the total for the aggregate meter. The aggregate
833
+ # meter must already be shared with you.
834
+ #
835
+ # @param individual_meter_id [Integer]
836
+ # @return [PortfolioManager::Xml::IndividualMeter, PortfolioManager::Xml::ResponseType]
837
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
838
+ # @raise [PortfolioManager::HTTPResponseError]
839
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/individual/get
840
+ def get_individual_meter_of_an_aggregated_meter(individual_meter_id)
841
+ request(Net::HTTP::Get, path_for("meter", "individual", individual_meter_id), {}, {}, nil, nil, PortfolioManager::Xml::IndividualMeter, basic_auth: true)
842
+ end
843
+
844
+ # Get Meter Aggregation Indicator
845
+ #
846
+ # This web service retrieves information on whether the specified
847
+ # meter represents an aggregation of multiple meters or not. It will
848
+ # also include the information that the existing {PortfolioManager::Services::Meter::Meter::Live#get_meter Get Meter}
849
+ # web service returns. The meter must already be shared with you.
850
+ #
851
+ # @note This web service is available because the aggregateMeter
852
+ # element cannot be added to the existing {PortfolioManager::Services::Meter::Meter::Live#get_meter Get Meter}
853
+ # web service schema until the 17.0 release (summer 2021). Until
854
+ # then, this service allows for backwards compatibility and informs
855
+ # whether the meter is marked as an aggregate or not.
856
+ #
857
+ # @param meter_id [Integer]
858
+ # @return [PortfolioManager::Xml::MeterType, PortfolioManager::Xml::ResponseType]
859
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
860
+ # @raise [PortfolioManager::HTTPResponseError]
861
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/aggregation/get
862
+ def get_meter_aggregation_indicator(meter_id)
863
+ request(Net::HTTP::Get, path_for("meter", meter_id, "aggregateMeter"), {}, {}, nil, nil, PortfolioManager::Xml::MeterType, basic_auth: true)
864
+ end
865
+
866
+ # Get Meter Aggregation List
867
+ #
868
+ # This web service retrieves a list of all individual meters that are
869
+ # aggregated into the specified meter. The meter must already be
870
+ # shared with you.
871
+ #
872
+ # @param meter_id [Integer]
873
+ # @return [PortfolioManager::Xml::ResponseType]
874
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
875
+ # @raise [PortfolioManager::HTTPResponseError]
876
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/aggregationList/get
877
+ def get_meter_aggregation_list(meter_id)
878
+ request(Net::HTTP::Get, path_for("meter", meter_id, "individual", "list"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
879
+ end
880
+
881
+ # Update Individual Meter of an Aggregated Meter
882
+ #
883
+ # This web service updates information for an individual meter that is
884
+ # included in the total for the aggregate meter. The aggregate meter
885
+ # must already be shared with you and you must have write access.
886
+ #
887
+ # @param individual_meter_id [Integer]
888
+ # @param individual_meter [PortfolioManager::Xml::IndividualMeter]
889
+ # @return [PortfolioManager::Xml::ResponseType]
890
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
891
+ # @raise [PortfolioManager::HTTPResponseError]
892
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/individual/put
893
+ def update_individual_meter_of_aggregated_meter(individual_meter_id, individual_meter)
894
+ request(Net::HTTP::Put, path_for("meter", "individual", individual_meter_id), {}, {}, individual_meter, "individualMeter", PortfolioManager::Xml::ResponseType, basic_auth: true)
895
+ end
896
+ end
897
+
898
+ # Test Environment
899
+ module Test
900
+ end
901
+ end
902
+
903
+ # Miscellaneous
904
+ module Miscellaneous
905
+ # Live Environment
906
+ module Live
907
+ # Get Meter Custom Field Values
908
+ #
909
+ # This web service returns a list of custom fields and their values
910
+ # for a specific meter.
911
+ #
912
+ # @param meter_id [Integer]
913
+ # @return [PortfolioManager::Xml::CustomFieldList, PortfolioManager::Xml::ResponseType]
914
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
915
+ # @raise [PortfolioManager::HTTPResponseError]
916
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/meter/customFieldValues/get
917
+ def get_meter_custom_field_values(meter_id)
918
+ request(Net::HTTP::Get, path_for("meter", meter_id, "customFieldList"), {}, {}, nil, nil, PortfolioManager::Xml::CustomFieldList, basic_auth: true)
919
+ end
920
+ end
921
+
922
+ # Test Environment
923
+ module Test
924
+ end
925
+ end
926
+
927
+ # All Services
928
+ module All
929
+ # Live Environment
930
+ module Live
931
+ include PortfolioManager::Services::Meter::Meter::Live
932
+ include PortfolioManager::Services::Meter::PropertyMeterAssociation::Live
933
+ include PortfolioManager::Services::Meter::PropertyUseMeterAssociation::Live
934
+ include PortfolioManager::Services::Meter::ConsumptionData::Live
935
+ include PortfolioManager::Services::Meter::WasteData::Live
936
+ include PortfolioManager::Services::Meter::UniqueIdentifiers::Live
937
+ include PortfolioManager::Services::Meter::MeterAggregation::Live
938
+ include PortfolioManager::Services::Meter::Miscellaneous::Live
939
+ end
940
+
941
+ # Test Environment
942
+ module Test
943
+ include PortfolioManager::Services::Meter::Meter::Test
944
+ include PortfolioManager::Services::Meter::PropertyMeterAssociation::Test
945
+ include PortfolioManager::Services::Meter::PropertyUseMeterAssociation::Test
946
+ include PortfolioManager::Services::Meter::ConsumptionData::Test
947
+ include PortfolioManager::Services::Meter::WasteData::Test
948
+ include PortfolioManager::Services::Meter::UniqueIdentifiers::Test
949
+ include PortfolioManager::Services::Meter::MeterAggregation::Test
950
+ include PortfolioManager::Services::Meter::Miscellaneous::Test
951
+ end
952
+ end
953
+ end
954
+ end
955
+ end