portfoliomanager-rb 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,603 @@ module PortfolioManager
8
8
  #
9
9
  # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting
10
10
  module Reporting
11
+ # Custom Reporting (Template Management)
12
+ module CustomReportingTemplateManagement
13
+ # Live Environment
14
+ module Live
15
+ # Get Available Metrics List
16
+ #
17
+ # This web service returns a list of all available metrics that can be
18
+ # used in a report template.
19
+ #
20
+ # @param group_ids [nil, Array<Integer>]
21
+ # @return [PortfolioManager::Xml::ReportMetrics]
22
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
23
+ # @raise [PortfolioManager::HTTPResponseError]
24
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/availableMetricsList/get
25
+ def get_available_metrics_list(group_ids = nil)
26
+ request(Net::HTTP::Get, path_for("reports", "metrics"), {
27
+ "groupIds" => (group_ids.nil? || group_ids.empty?) ? nil : group_ids.collect(&:to_s).join(","),
28
+ }, {}, nil, nil, PortfolioManager::Xml::ReportMetrics, basic_auth: true)
29
+ end
30
+
31
+ # Add Report Template
32
+ #
33
+ # This web service creates a report template in your account based on
34
+ # the template name and set of metrics provided in the XML request.
35
+ # This web service returns the unique identifier to the report
36
+ # template and a link to the corresponding web service to retrieve it.
37
+ # In addition, a unique identifier to the corresponding report and
38
+ # link to the web service to retrieve it are also returned.
39
+ #
40
+ # The following are limitations you should be aware of:
41
+ # * The maximum number of metrics that you are allowed to specify is
42
+ # the same limit that you have in the user interface.
43
+ #
44
+ # The list of metrics are specified by their unique identifiers and
45
+ # will be configured in the report template based on the order
46
+ # provided in the XML request with the exception of the 4 metrics
47
+ # listed below. The 4 metrics listed below are always included as the
48
+ # first 4 metrics in the report template even if they are not
49
+ # explicitly specified.
50
+ #
51
+ # * Property Id (id 448)
52
+ # * Property Name (id 443)
53
+ # * Parent Property Id (id 449)
54
+ # * Parent Property Name (id 1301)
55
+ #
56
+ # @param report_template [PortfolioManager::Xml::ReportTemplateType]
57
+ # @return [PortfolioManager::Xml::ResponseType]
58
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
59
+ # @raise [PortfolioManager::HTTPResponseError]
60
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/template/post
61
+ def add_report_template(report_template)
62
+ request(Net::HTTP::Post, path_for("reports", "templates"), {}, {}, report_template, "reportTemplate", PortfolioManager::Xml::ResponseType, basic_auth: true)
63
+ end
64
+
65
+ # Get Report Template
66
+ #
67
+ # This web service retrieves information for a specific report
68
+ # template which includes the template name, the set of metrics, and
69
+ # the unique identifier to the corresponding report. The metrics are
70
+ # listed in the order that they display in the report. The report
71
+ # template must be owned by you.
72
+ #
73
+ # @param template_id [Integer]
74
+ # @return [PortfolioManager::Xml::ReportTemplateType]
75
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
76
+ # @raise [PortfolioManager::HTTPResponseError]
77
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/template/get
78
+ def get_report_template(template_id)
79
+ request(Net::HTTP::Get, path_for("reports", "templates", template_id), {}, {}, nil, nil, PortfolioManager::Xml::ReportTemplateType, basic_auth: true)
80
+ end
81
+
82
+ # Edit Report Template
83
+ #
84
+ # This web service updates a specified report template based on the
85
+ # template name and set of metrics provided in the XML request. This
86
+ # web service returns the unique identifier to the report template and
87
+ # a link to the corresponding web service to retrieve it. In addition,
88
+ # a unique identifier to the corresponding report and link to the web
89
+ # service to retrieve it are also returned. The report template must
90
+ # be owned by you.
91
+ #
92
+ # The following are limitations you should be aware of:
93
+ # * The maximum number of metrics that you are allowed to specify is
94
+ # the same limit that you have in the user interface.
95
+ #
96
+ # The list of metrics are specified by their unique identifiers and
97
+ # will be configured in the report template based on the order
98
+ # provided in the XML request with the exception of the 4 metrics
99
+ # listed below. The 4 metrics listed below are always included as the
100
+ # first 4 metrics in the report template even if they are not
101
+ # explicitly specified.
102
+ #
103
+ # * Property Id (id 448)
104
+ # * Property Name (id 443)
105
+ # * Parent Property Id (id 449)
106
+ # * Parent Property Name (id 1301)
107
+ #
108
+ # @param template_id [Integer]
109
+ # @param report_template [PortfolioManager::Xml::ReportTemplateType]
110
+ # @return [PortfolioManager::Xml::ResponseType]
111
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
112
+ # @raise [PortfolioManager::HTTPResponseError]
113
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/template/put
114
+ def edit_report_template(template_id, report_template)
115
+ request(Net::HTTP::Put, path_for("reports", "templates", template_id), {}, {}, report_template, "reportTemplate", PortfolioManager::Xml::ResponseType, basic_auth: true)
116
+ end
117
+
118
+ # Delete Report Template
119
+ #
120
+ # This web service deletes a specified report template. The report
121
+ # template must be owned by you. The corresponding report is also
122
+ # deleted. The report template cannot be deleted if it's submitted for
123
+ # processing or is being generated.
124
+ #
125
+ # @param template_id [Integer]
126
+ # @return [PortfolioManager::Xml::ResponseType]
127
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
128
+ # @raise [PortfolioManager::HTTPResponseError]
129
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/template/delete
130
+ def delete_report_template(template_id)
131
+ request(Net::HTTP::Delete, path_for("reports", "templates", template_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
132
+ end
133
+
134
+ # Get Report Template List
135
+ #
136
+ # This web service returns a list of report templates in your account.
137
+ #
138
+ # @param type [nil, "CUSTOM", "ENERGY_STAR", "DATA_REQUEST"]
139
+ # @return [PortfolioManager::Xml::ResponseType]
140
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
141
+ # @raise [PortfolioManager::HTTPResponseError]
142
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/allTemplate/get
143
+ def get_report_template_list(type = nil)
144
+ request(Net::HTTP::Get, path_for("reports", "templates"), {
145
+ "type" => type,
146
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
147
+ end
148
+ end
149
+
150
+ # Test Environment
151
+ module Test
152
+ end
153
+ end
154
+
155
+ # Custom Reporting (Report Management)
156
+ module CustomReportingReportManagement
157
+ # Live Environment
158
+ module Live
159
+ # Get Report
160
+ #
161
+ # This web service retrieves the the list of properties, {https://portfoliomanager.energystar.gov/webservices/home/test/api/reporting/customReports/timeframes timeframe},
162
+ # current status, and the unique identifier to the corresponding
163
+ # template for a specific report. The report must be owned by you.
164
+ #
165
+ # @param report_id [Integer]
166
+ # @return [PortfolioManager::Xml::Report]
167
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
168
+ # @raise [PortfolioManager::HTTPResponseError]
169
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/report/get
170
+ def get_report(report_id)
171
+ request(Net::HTTP::Get, path_for("reports", report_id), {}, {}, nil, nil, PortfolioManager::Xml::Report, basic_auth: true)
172
+ end
173
+
174
+ # Edit Report
175
+ #
176
+ # This web service updates a specified report based on the list of
177
+ # properties and {https://portfoliomanager.energystar.gov/webservices/home/test/api/reporting/customReports/timeframes timeframe}
178
+ # provided in the XML request. The web service returns the unique
179
+ # identifier to the report and a link to the corresponding web service
180
+ # to retrieve it. The report must be owned by you.
181
+ #
182
+ # The following are limitations you should be aware of:
183
+ # * The report cannot be updated if it's already submitted for
184
+ # processing or is being generated.
185
+ # * A maximum of 5,000 properties is allowed and replaces the previous
186
+ # set of properties in the report.
187
+ # * A maximum of 2 million data points are allowed in a report
188
+ # (#properties * #metrics * #time periods).
189
+ #
190
+ # @param report_id [Integer]
191
+ # @param report [PortfolioManager::Xml::Report]
192
+ # @return [PortfolioManager::Xml::ResponseType]
193
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
194
+ # @raise [PortfolioManager::HTTPResponseError]
195
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/report/put
196
+ def edit_report(report_id, report)
197
+ request(Net::HTTP::Put, path_for("reports", report_id), {}, {}, report, "report", PortfolioManager::Xml::ResponseType, basic_auth: true)
198
+ end
199
+
200
+ # Get Report Results
201
+ #
202
+ # This web service retrieves the results of a report. It returns a
203
+ # file stream of either an Excel file or a XML file. The report must
204
+ # be owned by you.
205
+ #
206
+ # @param report_id [Integer]
207
+ # @param type ["EXCEL", "XML"]
208
+ # @return [PortfolioManager::Xml::Report]
209
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
210
+ # @raise [PortfolioManager::HTTPResponseError]
211
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/reportResults/get
212
+ def get_report_results(report_id, type = "XML")
213
+ request(Net::HTTP::Get, path_for("reports", report_id), {
214
+ "type" => type,
215
+ }, {}, nil, nil, PortfolioManager::Xml::Report, basic_auth: true)
216
+ end
217
+
218
+ # Generate Report
219
+ #
220
+ # This web service generates a specific report. It returns a link to
221
+ # the corresponding web service to retrieve the generation status. The
222
+ # report must be owned by you.
223
+ #
224
+ # The following are limitations you should be aware of:
225
+ # * Similar to the user interface, generated reports will only be
226
+ # available for 90 days. After that time you just need to generate
227
+ # the report again to populate your template with data.
228
+ # * You can only have a maximum of 5 reports generating at one time.
229
+ # To submit more, you will need to wait for at least one of your 5
230
+ # reports to finish generating.
231
+ #
232
+ # @param report_id [Integer]
233
+ # @return [PortfolioManager::Xml::ResponseType]
234
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
235
+ # @raise [PortfolioManager::HTTPResponseError]
236
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/generateReport/post
237
+ def generate_report(report_id)
238
+ request(Net::HTTP::Post, path_for("reports", report_id, "generate"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
239
+ end
240
+
241
+ # Get Report Status
242
+ #
243
+ # This web service returns information on the status of the report.
244
+ # The report must be owned by you.
245
+ #
246
+ # The following are valid statuses:
247
+ # * INITIALIZED - Indicates that the report was initially created or
248
+ # its configuration (i.e., timeframe, properties, metrics, etc.) has
249
+ # been updated.
250
+ # * SUBMITTED - Indicates that the report has been submitted for
251
+ # generation and is waiting to be generated.
252
+ # * IN_PROCESS - Indicates that the report is currently being
253
+ # generated.
254
+ # * FAILED - Indicates that the report encountered an unknown error
255
+ # during the generation step.
256
+ # * GENERATED - Indicates that report has completed generation and is
257
+ # available for download.
258
+ #
259
+ # @param report_id [Integer]
260
+ # @return [PortfolioManager::Xml::ReportStatusDef]
261
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
262
+ # @raise [PortfolioManager::HTTPResponseError]
263
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/reportStatus/get
264
+ def get_report_status(report_id)
265
+ request(Net::HTTP::Get, path_for("reports", report_id, "status"), {}, {}, nil, nil, PortfolioManager::Xml::ReportStatusDef, basic_auth: true)
266
+ end
267
+
268
+ # Get Report List
269
+ #
270
+ # This web service returns a list of reports in your account.
271
+ #
272
+ # @param type [nil, "CUSTOM", "ENERGY_STAR", "DATA_REQUEST", "DATA_RESPONSE"]
273
+ # @return [PortfolioManager::Xml::ResponseType]
274
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
275
+ # @raise [PortfolioManager::HTTPResponseError]
276
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/allReport/get
277
+ def get_report_list(type = nil)
278
+ request(Net::HTTP::Get, path_for("reports"), {
279
+ "type" => type,
280
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
281
+ end
282
+ end
283
+
284
+ # Test Environment
285
+ module Test
286
+ end
287
+ end
288
+
289
+ # Custom Reporting (Responding to Data Requests)
290
+ module CustomReportingRespondingToDataRequests
291
+ # Live Environment
292
+ module Live
293
+ # Get Data Request
294
+ #
295
+ # This web service returns the information for a specific customer's
296
+ # data request. The customer can reference a user you're connected to
297
+ # or your own account.
298
+ #
299
+ # @param customer_id [Integer]
300
+ # @param data_request_id [Integer]
301
+ # @return [PortfolioManager::Xml::DataRequest]
302
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
303
+ # @raise [PortfolioManager::HTTPResponseError]
304
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/customerDataRequest/get
305
+ def get_data_request(customer_id, data_request_id)
306
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataRequests", data_request_id), {}, {}, nil, nil, PortfolioManager::Xml::DataRequest, basic_auth: true)
307
+ end
308
+
309
+ # Get Data Requests
310
+ #
311
+ # This web service returns a list of data requests that were accessed
312
+ # by a specific customer. The customer can reference a user you're
313
+ # connected to or your own account.
314
+ #
315
+ # @param customer_id [Integer]
316
+ # @param status [nil, "OPEN", "CLOSED", "ALL"]
317
+ # @return [PortfolioManager::Xml::ResponseType]
318
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
319
+ # @raise [PortfolioManager::HTTPResponseError]
320
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/customerDataRequests/get
321
+ def get_data_requests(customer_id, status = nil)
322
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataRequests"), {
323
+ "status" => status,
324
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
325
+ end
326
+
327
+ # Add Data Response
328
+ #
329
+ # This web service creates/prepares a data response to a specific
330
+ # customer's data request. The `customer` can reference a user you're
331
+ # connected to or your own account. The information provided indicates
332
+ # the specific data request and a list of properties. This
333
+ # initialization is required if you are responding to a data request
334
+ # for the first time.
335
+ #
336
+ # @param customer_id [Integer]
337
+ # @param data_response [PortfolioManager::Xml::DataResponse]
338
+ # @return [PortfolioManager::Xml::ResponseType]
339
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
340
+ # @raise [PortfolioManager::HTTPResponseError]
341
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/dataResponse/post
342
+ def add_data_response(customer_id, data_response)
343
+ request(Net::HTTP::Post, path_for("reports", "customers", customer_id, "dataResponses"), {}, {}, data_response, "dataResponse", PortfolioManager::Xml::ResponseType, basic_auth: true)
344
+ end
345
+
346
+ # Get Data Response
347
+ #
348
+ # This web service retrieves information for a specific customer's
349
+ # data response. The information returned includes the data request
350
+ # identifier and a list of properties associated to the data response.
351
+ # The corresponding metric calculation values to the data response are
352
+ # not returned. The customer can reference a user you're connected to
353
+ # or your own account.
354
+ #
355
+ # NOTE: If the data response has not been submitted (i.e., sent) and
356
+ # the corresponding data request is closed then a 403 (access denied)
357
+ # is returned.
358
+ #
359
+ # @param customer_id [Integer]
360
+ # @param data_response_id [Integer]
361
+ # @return [PortfolioManager::Xml::DataResponse]
362
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
363
+ # @raise [PortfolioManager::HTTPResponseError]
364
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/dataResponse/get
365
+ def get_data_response(customer_id, data_response_id)
366
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses", data_response_id), {}, {}, nil, nil, PortfolioManager::Xml::DataResponse, basic_auth: true)
367
+ end
368
+
369
+ # Edit Data Response
370
+ #
371
+ # This web service updates the list of properties to a specific
372
+ # customer's data response. The list of properties provided replaces
373
+ # the list of the properties currently associated to the customer's
374
+ # data response. The customer can reference a user you're connected to
375
+ # or your own account.
376
+ #
377
+ # @param customer_id [Integer]
378
+ # @param data_response_id [Integer]
379
+ # @param data_response [PortfolioManager::Xml::DataResponse]
380
+ # @return [PortfolioManager::Xml::ResponseType]
381
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
382
+ # @raise [PortfolioManager::HTTPResponseError]
383
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/dataResponse/put
384
+ def edit_data_response(customer_id, data_response_id, data_response)
385
+ request(Net::HTTP::Put, path_for("reports", "customers", customer_id, "dataResponses", data_response_id), {}, {}, data_response, "dataResponse", PortfolioManager::Xml::ResponseType, basic_auth: true)
386
+ end
387
+
388
+ # Delete Data Response
389
+ #
390
+ # This web service deletes a specific customer's data response. The
391
+ # data response must not already been submitted (i.e., sent). The
392
+ # customer can reference a user you're connected to or your own
393
+ # account.
394
+ #
395
+ # NOTE: If the data response has not been submitted (i.e., sent) and
396
+ # the corresponding data request is closed then a 403 (access denied)
397
+ # is returned.
398
+ #
399
+ # @param customer_id [Integer]
400
+ # @param data_response_id [Integer]
401
+ # @return [PortfolioManager::Xml::ResponseType]
402
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
403
+ # @raise [PortfolioManager::HTTPResponseError]
404
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/dataResponse/delete
405
+ def delete_data_response(customer_id, data_response_id)
406
+ request(Net::HTTP::Delete, path_for("reports", "customers", customer_id, "dataResponses", data_response_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
407
+ end
408
+
409
+ # Get Data Response Errors
410
+ #
411
+ # This web service retrieves the errors associated to a specific
412
+ # customer's data response preview. The errors include the list of
413
+ # properties that failed to calculate the Site EUI and/or Total Water
414
+ # Use. The error information is returned as a file stream of either an
415
+ # Excel file or a XML file. The `customer` can reference a user you're
416
+ # connected to or your own account.
417
+ #
418
+ # @param customer_id [Integer]
419
+ # @param data_response_id [Integer]
420
+ # @param type ["EXCEL", "XML"]
421
+ # @return [PortfolioManager::Xml::ResponseStatus]
422
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
423
+ # @raise [PortfolioManager::HTTPResponseError]
424
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/downloadErrorsDataResponse/get
425
+ def get_data_response_errors(customer_id, data_response_id, type = "XML")
426
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses", data_response_id, "errors"), {
427
+ "type" => type,
428
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseStatus, basic_auth: true)
429
+ end
430
+
431
+ # Generate Data Response Preview
432
+ #
433
+ # This web services generates a preview of a specific customer's data
434
+ # response. The `customer` can reference a user you're connected to or
435
+ # your own account.
436
+ #
437
+ # @param customer_id [Integer]
438
+ # @param data_response_id [Integer]
439
+ # @return [PortfolioManager::Xml::ResponseType]
440
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
441
+ # @raise [PortfolioManager::HTTPResponseError]
442
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/generateDataResponse/post
443
+ def generate_response_data_preview(customer_id, data_response_id)
444
+ request(Net::HTTP::Post, path_for("reports", "customers", customer_id, "dataResponses", data_response_id, "generate"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
445
+ end
446
+
447
+ # Get Data Response Receipt
448
+ #
449
+ # This web service retrieves the receipt (PDF file) for a specific
450
+ # customer's data response. It returns a file stream of a PDF file and
451
+ # the data response must be already submitted (i.e., sent). The
452
+ # `customer` can reference a user you're connected to or your own
453
+ # account.
454
+ #
455
+ # @param customer_id [Integer]
456
+ # @param data_response_id [Integer]
457
+ # @return [PortfolioManager::Xml::ResponseType]
458
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
459
+ # @raise [PortfolioManager::HTTPResponseError]
460
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/receiptDataResponse/get
461
+ def get_data_response_receipt(customer_id, data_response_id)
462
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses", data_response_id, "receipt", "download"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
463
+ end
464
+
465
+ # Submit Data Response
466
+ #
467
+ # This web service submits and finalizes a specific customer's data
468
+ # response. The submission includes a list of email addresses that
469
+ # will receive a confirmation, the file format of the copy of the data
470
+ # that is attached to the email attachment, and whether the submission
471
+ # should ignore any errors where a Site EUI and/or Total Water Use
472
+ # calculations could not be determined. The `customer` can reference a
473
+ # user you're connected to or your own account.
474
+ #
475
+ # Note that the E-Sign Response step that is in the user interface is
476
+ # implied in this web service.
477
+ #
478
+ # @param customer_id [Integer]
479
+ # @param data_response_id [Integer]
480
+ # @param send_data_response [PortfolioManager::Xml::SendDataResponse]
481
+ # @return [PortfolioManager::Xml::ResponseType]
482
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
483
+ # @raise [PortfolioManager::HTTPResponseError]
484
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/sendDataResponse/post
485
+ def submit_data_response(customer_id, data_response_id, send_data_response)
486
+ request(Net::HTTP::Post, path_for("reports", "customers", customer_id, "dataResponses", data_response_id, "send"), {}, {}, send_data_response, "sendDataResponse", PortfolioManager::Xml::ResponseType, basic_auth: true)
487
+ end
488
+
489
+ # Get Data Response Status
490
+ #
491
+ # This web service returns the information on the status of a specific
492
+ # customer's data response and any helpful information to troubleshoot
493
+ # errors. The `customer` can reference a user you're connected to or
494
+ # your own account.
495
+ #
496
+ # The following are valid statuses:
497
+ # * INITIALIZED - Indicates that the configuration of the data
498
+ # response was initially created or its configuration
499
+ # (i.e., properties) has been updated.
500
+ # * SUBMITTED - Indicates that the data response has been submitted
501
+ # for generation and is waiting to be generated.
502
+ # * IN_PROCESS - Indicates that the data response is currently being
503
+ # generated.
504
+ # * FAILED - Indicates that the data response completed generating but
505
+ # has encountered an unknown error.
506
+ # * GENERATED - Indicates that data response has completed generating
507
+ # with no errors.
508
+ # * GENERATED_WITH_ERRORS - Indicates that data response has completed
509
+ # generating with no errors. Links are provided to download the
510
+ # errors.
511
+ # * SENT - Indicates that the data response has been sent.
512
+ #
513
+ # @param customer_id [Integer]
514
+ # @param data_response_id [Integer]
515
+ # @return [PortfolioManager::Xml::ResponseStatus]
516
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
517
+ # @raise [PortfolioManager::HTTPResponseError]
518
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/statusDataResponse/get
519
+ def get_data_response_status(customer_id, data_response_id)
520
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses", data_response_id, "status"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseStatus, basic_auth: true)
521
+ end
522
+
523
+ # Delete Data Request Access
524
+ #
525
+ # This web service deletes a specific customer's data request access.
526
+ # The data request must be closed. The data request itself is not
527
+ # deleted – just the customer's access to it. The `customer` can
528
+ # reference a user you're connected to or your own account.
529
+ #
530
+ # @param customer_id [Integer]
531
+ # @param data_request_id [Integer]
532
+ # @return [PortfolioManager::Xml::ResponseType]
533
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
534
+ # @raise [PortfolioManager::HTTPResponseError]
535
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/dataRequest/delete
536
+ def delete_data_request_access(customer_id, data_request_id)
537
+ request(Net::HTTP::Delete, path_for("reports", "customers", customer_id, "dataResponses", "dataRequests", data_request_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
538
+ end
539
+
540
+ # Get All Data Responses Results
541
+ #
542
+ # This web service retrieves all of the data responses to a specific
543
+ # customer's data request and returns a file stream of either an Excel
544
+ # file or a XML file. All of the corresponding data responses must
545
+ # already be submitted (i.e., sent). The `customer` can reference a
546
+ # user you're connected to or your own account.
547
+ #
548
+ # @param customer_id [Integer]
549
+ # @param data_request_id [Integer]
550
+ # @param type ["EXCEL", "XML"]
551
+ # @return [PortfolioManager::Xml::ResponseType]
552
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
553
+ # @raise [PortfolioManager::HTTPResponseError]
554
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/downloadDataResponse/get
555
+ def get_all_data_responses_results(customer_id, data_request_id, type = "XML")
556
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses", "dataRequests", data_request_id, "download"), {
557
+ "type" => type,
558
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
559
+ end
560
+
561
+ # Get Data Responses
562
+ #
563
+ # This web service returns a list of all of data responses for a
564
+ # specific customer's data request. The `customer` can reference a
565
+ # user you're connected to or your own account.
566
+ #
567
+ # @param customer_id [Integer]
568
+ # @param data_request_id [nil, Integer]
569
+ # @param status [nil, "OPEN", "CLOSED", "ALL"]
570
+ # @return [PortfolioManager::Xml::ResponseType]
571
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
572
+ # @raise [PortfolioManager::HTTPResponseError]
573
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/customerDataResponses/get
574
+ def get_data_response(customer_id, data_request_id = nil, status = nil)
575
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses"), {
576
+ "dataRequestId" => data_request_id,
577
+ "status" => status,
578
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
579
+ end
580
+
581
+ # Get Preview Data Response Results
582
+ #
583
+ # This web service retrieves a specific customer's data response
584
+ # preview and returns the results as a file stream of either an Excel
585
+ # file or a XML file. The data response must be in preview and not
586
+ # already submitted (i.e., sent). The `customer` can reference a user
587
+ # you're connected to or your own account.
588
+ #
589
+ # @param customer_id [Integer]
590
+ # @param data_response_id [Integer]
591
+ # @param type ["EXCEL", "XML"]
592
+ # @return [PortfolioManager::Xml::ResponseType]
593
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
594
+ # @raise [PortfolioManager::HTTPResponseError]
595
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/downloadPreviewDataResponse/get
596
+ def get_preview_data_response_results(customer_id, data_response_id, type = "XML")
597
+ request(Net::HTTP::Get, path_for("reports", "customers", customer_id, "dataResponses", data_response_id, "download"), {
598
+ "type" => type,
599
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
600
+ end
601
+ end
602
+
603
+ # Test Environment
604
+ module Test
605
+ end
606
+ end
607
+
11
608
  # Reporting
12
609
  module Reporting
13
610
  # Live Environment
@@ -195,11 +792,17 @@ module PortfolioManager
195
792
  module All
196
793
  # Live Environment
197
794
  module Live
795
+ include PortfolioManager::Services::Reporting::CustomReportingTemplateManagement::Live
796
+ include PortfolioManager::Services::Reporting::CustomReportingReportManagement::Live
797
+ include PortfolioManager::Services::Reporting::CustomReportingRespondingToDataRequests::Live
198
798
  include PortfolioManager::Services::Reporting::Reporting::Live
199
799
  end
200
800
 
201
801
  # Test Environment
202
802
  module Test
803
+ include PortfolioManager::Services::Reporting::CustomReportingTemplateManagement::Test
804
+ include PortfolioManager::Services::Reporting::CustomReportingReportManagement::Test
805
+ include PortfolioManager::Services::Reporting::CustomReportingRespondingToDataRequests::Test
203
806
  include PortfolioManager::Services::Reporting::Reporting::Test
204
807
  end
205
808
  end
@@ -8,14 +8,15 @@ module PortfolioManager
8
8
  #
9
9
  # @see https://portfoliomanager.energystar.gov/webservices/home/api
10
10
  module Services
11
- autoload :All, "portfolio_manager/services/all"
12
- autoload :BasicAccount, "portfolio_manager/services/basic_account"
13
- autoload :Building, "portfolio_manager/services/building"
14
- autoload :Connection, "portfolio_manager/services/connection"
15
- autoload :Meter, "portfolio_manager/services/meter"
16
- autoload :Property, "portfolio_manager/services/property"
17
- autoload :PropertyUse, "portfolio_manager/services/property_use"
18
- autoload :Reporting, "portfolio_manager/services/reporting"
19
- autoload :TargetFinder, "portfolio_manager/services/target_finder"
11
+ autoload :All, "portfolio_manager/services/all"
12
+ autoload :BasicAccount, "portfolio_manager/services/basic_account"
13
+ autoload :Building, "portfolio_manager/services/building"
14
+ autoload :Connection, "portfolio_manager/services/connection"
15
+ autoload :HomeEnergyYardstick, "portfolio_manager/services/home_energy_yardstick"
16
+ autoload :Meter, "portfolio_manager/services/meter"
17
+ autoload :Property, "portfolio_manager/services/property"
18
+ autoload :PropertyUse, "portfolio_manager/services/property_use"
19
+ autoload :Reporting, "portfolio_manager/services/reporting"
20
+ autoload :TargetFinder, "portfolio_manager/services/target_finder"
20
21
  end
21
22
  end
@@ -1,3 +1,3 @@
1
1
  module PortfolioManager
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end