portfoliomanager-rb 0.0.1

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.
@@ -0,0 +1,306 @@
1
+ require "net/http"
2
+
3
+ module PortfolioManager
4
+ module Services
5
+ # Property Use Services
6
+ #
7
+ # The Property Use Services allows you to define how a property will be used
8
+ # and operated. These services allow you to add, update, and delete the use
9
+ # types of a property as well as manage their operating characteristics.
10
+ #
11
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse
12
+ module PropertyUse
13
+ # Property Use
14
+ module PropertyUse
15
+ # Live Environment
16
+ module Live
17
+ # Add Property Use
18
+ #
19
+ # This web service creates a property use under a specified property
20
+ # based on the information provided in the XML request. It returns the
21
+ # unique identifier to the newly created property use and a link to
22
+ # the corresponding web service to retrieve it. To specify the use of
23
+ # default values, just omit the "value" XML tag for that particular
24
+ # use detail information from the XML request or omit the entire
25
+ # reference to the particular use detail information from the XML
26
+ # request altogether.
27
+ #
28
+ # @param property_id [Integer]
29
+ # @param property_use [PortfolioManager::Xml::BankBranchType, PortfolioManager::Xml::BarracksType, PortfolioManager::Xml::CollegeUniversityType, PortfolioManager::Xml::ConvenienceStoreWithGasStationType, PortfolioManager::Xml::ConvenienceStoreWithoutGasStationType, PortfolioManager::Xml::CourthouseType, PortfolioManager::Xml::DataCenterType, PortfolioManager::Xml::DistributionCenterType, PortfolioManager::Xml::DrinkingWaterTreatmentAndDistributionType, PortfolioManager::Xml::FinancialOfficeType, PortfolioManager::Xml::FoodSalesType, PortfolioManager::Xml::HospitalType, PortfolioManager::Xml::HotelType, PortfolioManager::Xml::IceCurlingRinkType, PortfolioManager::Xml::IndoorArenaType, PortfolioManager::Xml::K12SchoolType, PortfolioManager::Xml::MedicalOfficeType, PortfolioManager::Xml::MultifamilyHousingType, PortfolioManager::Xml::NonRefrigeratedWarehouseType, PortfolioManager::Xml::OfficeType, PortfolioManager::Xml::OtherStadiumType, PortfolioManager::Xml::ParkingType, PortfolioManager::Xml::RefrigeratedWarehouseType, PortfolioManager::Xml::ResidenceHallDormitoryType, PortfolioManager::Xml::ResidentialCareFacilityType, PortfolioManager::Xml::RetailType, PortfolioManager::Xml::SelfStorageFacilityType, PortfolioManager::Xml::SeniorLivingCommunityType, PortfolioManager::Xml::SingleFamilyHomeType, PortfolioManager::Xml::StadiumClosedType, PortfolioManager::Xml::StadiumOpenType, PortfolioManager::Xml::SupermarketType, PortfolioManager::Xml::SwimmingPoolType, PortfolioManager::Xml::WastewaterTreatmentPlantType, PortfolioManager::Xml::WholesaleClubSupercenterType, PortfolioManager::Xml::WorshipFacilityType]
30
+ # @param elename [nil, String]
31
+ # @return [PortfolioManager::Xml::ResponseType]
32
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
33
+ # @raise [PortfolioManager::HTTPResponseError]
34
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/propertyUse/post
35
+ def add_property_use(property_id, property_use, elename = nil)
36
+ request(Net::HTTP::Post, path_for("property", property_id, "propertyUse"), {}, {}, property_use, elename, PortfolioManager::Xml::ResponseType, basic_auth: true)
37
+ end
38
+
39
+ # Delete Property Use
40
+ #
41
+ # This web service deletes a specific property use. The corresponding
42
+ # property must already be shared with you.
43
+ #
44
+ # @param property_use_id [Integer]
45
+ # @return [PortfolioManager::Xml::ResponseType]
46
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
47
+ # @raise [PortfolioManager::HTTPResponseError]
48
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/propertyUse/delete
49
+ def delete_property_use(property_use_id)
50
+ request(Net::HTTP::Delete, path_for("propertyUse", property_use_id), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
51
+ end
52
+
53
+ # Edit Property Use
54
+ #
55
+ # This web service updates a specific property use under a given
56
+ # property based on the information provided in the XML request. Only
57
+ # the name of the property use can be updated with this web service.
58
+ # It returns the unique identifier to the property use and a link to
59
+ # the corresponding web service to retrieve it. The corresponding
60
+ # property must already be shared with you.
61
+ #
62
+ # @param property_use_id [Integer]
63
+ # @param property_use [PortfolioManager::Xml::PropertyUse]
64
+ # @return [PortfolioManager::Xml::ResponseType]
65
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
66
+ # @raise [PortfolioManager::HTTPResponseError]
67
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/propertyUse/put
68
+ def edit_property_use(property_use_id, property_use)
69
+ request(Net::HTTP::Put, path_for("propertyUse", property_use_id), {}, {}, property_use, "propertyUse", PortfolioManager::Xml::ResponseType, basic_auth: true)
70
+ end
71
+
72
+ # Get ID Hierarchy for Property Use
73
+ #
74
+ # This web service returns the accountId and propertyId that
75
+ # corresponds to a specific property use. The accountId returned is
76
+ # the Property Data Administrator (PDA). The corresponding property
77
+ # must already be shared with you or you must have pending share
78
+ # access.
79
+ #
80
+ # @param property_use_id [Integer]
81
+ # @return [PortfolioManager::Xml::HierarchyType, PortfolioManager::Xml::ResponseType]
82
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
83
+ # @raise [PortfolioManager::HTTPResponseError]
84
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/hierarchy/get
85
+ def get_id_hierarchy_for_property_use(property_use_id)
86
+ request(Net::HTTP::Get, path_for("idHierarchy", "propertyUse", property_use_id), {}, {}, nil, nil, PortfolioManager::Xml::HierarchyType, basic_auth: true)
87
+ end
88
+
89
+ # Get Property Use
90
+ #
91
+ # This web service returns information for a specific property use.
92
+ # The information includes general data about the property use itself
93
+ # and its most current operating characteristics information. If the
94
+ # "value" XML tag is not present, then no value was initially provided
95
+ # for that operating characteristic. The corresponding property must
96
+ # already be shared with you.
97
+ #
98
+ # @param property_use_id [Integer]
99
+ # @param klass [nil, Class]
100
+ # @return [PortfolioManager::Xml::BankBranchType, PortfolioManager::Xml::BarracksType, PortfolioManager::Xml::CollegeUniversityType, PortfolioManager::Xml::ConvenienceStoreWithGasStationType, PortfolioManager::Xml::ConvenienceStoreWithoutGasStationType, PortfolioManager::Xml::CourthouseType, PortfolioManager::Xml::DataCenterType, PortfolioManager::Xml::DistributionCenterType, PortfolioManager::Xml::DrinkingWaterTreatmentAndDistributionType, PortfolioManager::Xml::FinancialOfficeType, PortfolioManager::Xml::FoodSalesType, PortfolioManager::Xml::HospitalType, PortfolioManager::Xml::HotelType, PortfolioManager::Xml::IceCurlingRinkType, PortfolioManager::Xml::IndoorArenaType, PortfolioManager::Xml::K12SchoolType, PortfolioManager::Xml::MedicalOfficeType, PortfolioManager::Xml::MultifamilyHousingType, PortfolioManager::Xml::NonRefrigeratedWarehouseType, PortfolioManager::Xml::OfficeType, PortfolioManager::Xml::OtherStadiumType, PortfolioManager::Xml::ParkingType, PortfolioManager::Xml::RefrigeratedWarehouseType, PortfolioManager::Xml::ResidenceHallDormitoryType, PortfolioManager::Xml::ResidentialCareFacilityType, PortfolioManager::Xml::RetailType, PortfolioManager::Xml::SelfStorageFacilityType, PortfolioManager::Xml::SeniorLivingCommunityType, PortfolioManager::Xml::SingleFamilyHomeType, PortfolioManager::Xml::StadiumClosedType, PortfolioManager::Xml::StadiumOpenType, PortfolioManager::Xml::SupermarketType, PortfolioManager::Xml::SwimmingPoolType, PortfolioManager::Xml::WastewaterTreatmentPlantType, PortfolioManager::Xml::WholesaleClubSupercenterType, PortfolioManager::Xml::WorshipFacilityType, PortfolioManager::Xml::ResponseType]
101
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
102
+ # @raise [PortfolioManager::HTTPResponseError]
103
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/propertyUse/get
104
+ def get_property_use(property_use_id, klass = nil)
105
+ request(Net::HTTP::Get, path_for("propertyUse", property_use_id), {}, {}, nil, nil, klass, basic_auth: true)
106
+ end
107
+
108
+ # Get Property Use List
109
+ #
110
+ # This web service returns the list of property uses for a specific
111
+ # property. The property must already be shared with you.
112
+ #
113
+ # @param property_id [Integer]
114
+ # @return [PortfolioManager::Xml::ResponseType]
115
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
116
+ # @raise [PortfolioManager::HTTPResponseError]
117
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/propertyUseList/get
118
+ def get_property_use_list(property_id)
119
+ request(Net::HTTP::Get, path_for("property", property_id, "propertyUse", "list"), {}, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
120
+ end
121
+
122
+ # Get What Changed Property Use List
123
+ #
124
+ # This web service returns a list of property uses that had their name
125
+ # or use details modified since a user specified date. The list of
126
+ # property uses returned are account specific. Results are returned in
127
+ # increments of 1,000 per set. The returned list only shows property
128
+ # uses that you have permission to view. Actions that trigger a
129
+ # property use to be included in the returned list may have been
130
+ # performed by any user with property use access. Changes that result
131
+ # in a property use being returned are as follows:
132
+ # - a use detail within the property use is corrected or updated with
133
+ # a new historical record
134
+ # - the name of the property use is edited
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/propertyUse/getWhatChanged/get
144
+ def get_what_changed_property_use_list(customer_id, date, next_page_key = nil, previous_page_key = nil)
145
+ request(Net::HTTP::Get, path_for("customer", customer_id, "propertyUse", "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
+ end
152
+
153
+ # Test Environment
154
+ module Test
155
+ end
156
+ end
157
+
158
+ # Use Details
159
+ module UseDetails
160
+ # Live Environment
161
+ module Live
162
+ # Edit Use Details
163
+ #
164
+ # This web service updates a specific set of use details based on the
165
+ # information provided in the XML request. The update is performed by
166
+ # creating a revision history. It returns the unique identifier to the
167
+ # use details and a link to the corresponding web service to retrieve
168
+ # it. To specify the use of default values, just omit the "value" XML
169
+ # tag for that particular use detail information from the XML request
170
+ # or omit the entire reference to the particular use detail
171
+ # information from the XML request altogether.
172
+ #
173
+ # @param property_use_id [Integer]
174
+ # @param use_detail [PortfolioManager::Xml::AmountOfLaundryProcessedAnnuallyType, PortfolioManager::Xml::ClearHeightUnitsType, PortfolioManager::Xml::CoolingEquipmentRedundancyType, PortfolioManager::Xml::GrossFloorAreaType, PortfolioManager::Xml::HoursPerDayGuestsOnsiteType, PortfolioManager::Xml::ItEnergyConfigurationType, PortfolioManager::Xml::LengthOfAllOpenClosedRefrigerationUnitsType, PortfolioManager::Xml::LinksType, PortfolioManager::Xml::MonthsInUseType, PortfolioManager::Xml::NumberOfWeekdaysType, PortfolioManager::Xml::NumberOfWeeklyIceResurfacingType, PortfolioManager::Xml::OnsiteLaundryType, PortfolioManager::Xml::OptionalFloorAreaType, PortfolioManager::Xml::OwnedByType, PortfolioManager::Xml::PercentCooledType, PortfolioManager::Xml::PercentHeatedType, PortfolioManager::Xml::PercentOfficeCooledType, PortfolioManager::Xml::PercentOfficeHeatedType, PortfolioManager::Xml::PlantDesignFlowRateType, PortfolioManager::Xml::PoolSizeType, PortfolioManager::Xml::PoolType, PortfolioManager::Xml::ResidentPopulationType, PortfolioManager::Xml::UpsSystemRedundancyType, PortfolioManager::Xml::UseDecimalType, PortfolioManager::Xml::UseIntegerType, PortfolioManager::Xml::UseStringType, PortfolioManager::Xml::UseYesNoType]
175
+ # @param elename [nil, String]
176
+ # @return [PortfolioManager::Xml::ResponseType]
177
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
178
+ # @raise [PortfolioManager::HTTPResponseError]
179
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/useDetails/post
180
+ def edit_use_details(property_use_id, use_detail, elename = nil)
181
+ request(Net::HTTP::Post, path_for("propertyUse", property_use_id, "useDetails"), {}, {}, use_detail, elename, PortfolioManager::Xml::ResponseType, basic_auth: true)
182
+ end
183
+
184
+ # Edit Use Details - Correction
185
+ #
186
+ # This web service updates a specific set of use details based on the
187
+ # information provided in the XML request. The update is performed as
188
+ # a correction. It returns the unique identifier to the use details
189
+ # and a link to the corresponding web service to retrieve it. The
190
+ # corresponding property must already be shared with you. To specify
191
+ # the use of default values, just omit the "value" XML tag for that
192
+ # particular use detail information from the XML request or omit the
193
+ # entire reference to the particular use detail information from the
194
+ # XML request altogether.
195
+ #
196
+ # @param use_detail_id [Integer]
197
+ # @param use_detail [PortfolioManager::Xml::AmountOfLaundryProcessedAnnuallyType, PortfolioManager::Xml::ClearHeightUnitsType, PortfolioManager::Xml::CoolingEquipmentRedundancyType, PortfolioManager::Xml::GrossFloorAreaType, PortfolioManager::Xml::HoursPerDayGuestsOnsiteType, PortfolioManager::Xml::ItEnergyConfigurationType, PortfolioManager::Xml::LengthOfAllOpenClosedRefrigerationUnitsType, PortfolioManager::Xml::LinksType, PortfolioManager::Xml::MonthsInUseType, PortfolioManager::Xml::NumberOfWeekdaysType, PortfolioManager::Xml::NumberOfWeeklyIceResurfacingType, PortfolioManager::Xml::OnsiteLaundryType, PortfolioManager::Xml::OptionalFloorAreaType, PortfolioManager::Xml::OwnedByType, PortfolioManager::Xml::PercentCooledType, PortfolioManager::Xml::PercentHeatedType, PortfolioManager::Xml::PercentOfficeCooledType, PortfolioManager::Xml::PercentOfficeHeatedType, PortfolioManager::Xml::PlantDesignFlowRateType, PortfolioManager::Xml::PoolSizeType, PortfolioManager::Xml::PoolType, PortfolioManager::Xml::ResidentPopulationType, PortfolioManager::Xml::UpsSystemRedundancyType, PortfolioManager::Xml::UseDecimalType, PortfolioManager::Xml::UseIntegerType, PortfolioManager::Xml::UseStringType, PortfolioManager::Xml::UseYesNoType]
198
+ # @param elename [nil, String]
199
+ # @return [PortfolioManager::Xml::ResponseType]
200
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
201
+ # @raise [PortfolioManager::HTTPResponseError]
202
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/useDetails/put
203
+ def edit_use_details_correction(use_detail_id, use_detail, elename = nil)
204
+ request(Net::HTTP::Put, path_for("useDetails", use_detail_id), {}, {}, use_detail, elename, PortfolioManager::Xml::ResponseType, basic_auth: true)
205
+ end
206
+
207
+ # Get ID Hierarchy for Use Detail
208
+ #
209
+ # This web service returns the accountId, propertyId, and
210
+ # propertyUseId that corresponds to a specific use detail record. The
211
+ # accountId returned is the Property Data Administrator (PDA). The
212
+ # corresponding property must already be shared with you or you must
213
+ # have pending share access.
214
+ #
215
+ # @param use_detail_id [Integer]
216
+ # @return [PortfolioManager::Xml::HierarchyType, PortfolioManager::Xml::ResponseType]
217
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
218
+ # @raise [PortfolioManager::HTTPResponseError]
219
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/useDetailsHierarchy/get
220
+ def get_id_hierarchy_for_use_detail(use_detail_id)
221
+ request(Net::HTTP::Get, path_for("idHierarchy", "useDetails", use_detail_id), {}, {}, nil, nil, PortfolioManager::Xml::HierarchyType, basic_auth: true)
222
+ end
223
+
224
+ # Get Use Details
225
+ #
226
+ # This web service retrieves specific use detail information for a
227
+ # given use detail. The corresponding property must already be shared
228
+ # with you.
229
+ #
230
+ # @param use_detail_id [Integer]
231
+ # @param klass [nil, Class]
232
+ # @return [PortfolioManager::Xml::AmountOfLaundryProcessedAnnuallyType, PortfolioManager::Xml::ClearHeightUnitsType, PortfolioManager::Xml::CoolingEquipmentRedundancyType, PortfolioManager::Xml::GrossFloorAreaType, PortfolioManager::Xml::HoursPerDayGuestsOnsiteType, PortfolioManager::Xml::ItEnergyConfigurationType, PortfolioManager::Xml::LengthOfAllOpenClosedRefrigerationUnitsType, PortfolioManager::Xml::LinksType, PortfolioManager::Xml::MonthsInUseType, PortfolioManager::Xml::NumberOfWeekdaysType, PortfolioManager::Xml::NumberOfWeeklyIceResurfacingType, PortfolioManager::Xml::OnsiteLaundryType, PortfolioManager::Xml::OptionalFloorAreaType, PortfolioManager::Xml::OwnedByType, PortfolioManager::Xml::PercentCooledType, PortfolioManager::Xml::PercentHeatedType, PortfolioManager::Xml::PercentOfficeCooledType, PortfolioManager::Xml::PercentOfficeHeatedType, PortfolioManager::Xml::PlantDesignFlowRateType, PortfolioManager::Xml::PoolSizeType, PortfolioManager::Xml::PoolType, PortfolioManager::Xml::ResidentPopulationType, PortfolioManager::Xml::UpsSystemRedundancyType, PortfolioManager::Xml::UseDecimalType, PortfolioManager::Xml::UseIntegerType, PortfolioManager::Xml::UseStringType, PortfolioManager::Xml::UseYesNoType, PortfolioManager::Xml::ResponseType]
233
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
234
+ # @raise [PortfolioManager::HTTPResponseError]
235
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/useDetails/get
236
+ def get_use_details(use_detail_id, klass = nil)
237
+ request(Net::HTTP::Get, path_for("useDetails", use_detail_id), {}, {}, nil, nil, klass, basic_auth: true)
238
+ end
239
+
240
+ # Get Use Details Revision History
241
+ #
242
+ # This web service retrieves the use details revision history for a
243
+ # specific property use. The corresponding property must be already
244
+ # shared with you.
245
+ #
246
+ # @param property_use_id [Integer]
247
+ # @param current_as_of_start [Date]
248
+ # @param current_as_of_end [Date]
249
+ # @return [PortfolioManager::Xml::UseDetails, PortfolioManager::Xml::ResponseType]
250
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
251
+ # @raise [PortfolioManager::HTTPResponseError]
252
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/useDetailsRevisions/get
253
+ def get_use_details_revision_history(property_use_id, current_as_of_start, current_as_of_end)
254
+ request(Net::HTTP::Get, path_for("propertyUse", property_use_id, "useDetailsRevisions"), {
255
+ "currentAsOfStart" => current_as_of_start.strftime("%Y-%m-%d"),
256
+ "currentAsOfEnd" => current_as_of_end.strftime("%Y-%m-%d"),
257
+ }, {}, nil, nil, PortfolioManager::Xml::UseDetails, basic_auth: true)
258
+ end
259
+
260
+ # Get What Changed Property Use List (from use detail changes only)
261
+ #
262
+ # This web service returns a list of property uses that have had their
263
+ # use details changed since a user specified date. The list of
264
+ # property uses returned are account specific. Results are returned in
265
+ # increments of 1,000 per set. The returned list only shows property
266
+ # uses that you have permission to view. Actions that trigger a
267
+ # property use to be included in the returned list may have been
268
+ # performed by any user with permission to edit the property use
269
+ # details. A property use is displayed if it's corresponding use
270
+ # details are corrected, or updated with a new historical record.
271
+ #
272
+ # @param customer_id [Integer]
273
+ # @param date [Date]
274
+ # @return [PortfolioManager::Xml::ResponseType]
275
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
276
+ # @raise [PortfolioManager::HTTPResponseError]
277
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/propertyUse/useDetailsGetWhatChanged/get
278
+ def get_what_changed_property_use_list_from_use_detail_changes_only(customer_id, date)
279
+ request(Net::HTTP::Get, path_for("customer", customer_id, "useDetails", "whatChanged"), {
280
+ "date" => date.strftime("%Y-%m-%d"),
281
+ }, {}, nil, nil, PortfolioManager::Xml::ResponseType, basic_auth: true)
282
+ end
283
+ end
284
+
285
+ # Test Environment
286
+ module Test
287
+ end
288
+ end
289
+
290
+ # All Property Use Services
291
+ module All
292
+ # Live Environment
293
+ module Live
294
+ include PortfolioManager::Services::PropertyUse::PropertyUse::Live
295
+ include PortfolioManager::Services::PropertyUse::UseDetails::Live
296
+ end
297
+
298
+ # Test Environment
299
+ module Test
300
+ include PortfolioManager::Services::PropertyUse::PropertyUse::Test
301
+ include PortfolioManager::Services::PropertyUse::UseDetails::Test
302
+ end
303
+ end
304
+ end
305
+ end
306
+ end
@@ -0,0 +1,208 @@
1
+ require "net/http"
2
+
3
+ module PortfolioManager
4
+ module Services
5
+ # Reporting Services
6
+ #
7
+ # The Reporting Services allows you to retrieve metrics for your properties.
8
+ #
9
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting
10
+ module Reporting
11
+ # Reporting
12
+ module Reporting
13
+ # Live Environment
14
+ module Live
15
+ # Get Design Metrics
16
+ #
17
+ # This web service returns a list of metric values for a specific
18
+ # property design based on a specified measurement system. If the
19
+ # property contains operational data then an additional set of metric
20
+ # values based on the property's current period ending date is also
21
+ # returned. The property must already be shared with you. A full list
22
+ # of the reporting metrics that are available through this service and
23
+ # related web services can be found {https://downloads.energystar.gov/bi/portfolio-manager/Custom_Reporting_Metric_Inventory_en_US.xlsx here}.
24
+ # The list includes the metric name, the appropriate web service call
25
+ # for the metric, and a glossary link. It can be sorted and filtered
26
+ # for ease of finding the metrics that you need.
27
+ #
28
+ # @note Metrics that are readily available through other web services,
29
+ # such as {PortfolioManager::Services::Property::Design::Live#get_design GET /property/(propertyId)/design}
30
+ # are not included in the reporting web services, since they are
31
+ # already accessible elsewhere.
32
+ #
33
+ # @param property_id [Integer]
34
+ # @param measurement_system [nil, "EPA", "METRIC"]
35
+ # @return [PortfolioManager::Xml::PropertyMetricsType, PortfolioManager::Xml::ResponseType]
36
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
37
+ # @raise [PortfolioManager::HTTPResponseError]
38
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/designMetrics/get
39
+ def get_design_metrics(property_id, measurement_system = nil)
40
+ request(Net::HTTP::Get, path_for("property", property_id, "design", "metrics"), {
41
+ "measurementSystem" => measurement_system,
42
+ }, {}, nil, nil, PortfolioManager::Xml::PropertyMetricsType, basic_auth: true)
43
+ end
44
+
45
+ # Get Property Metrics
46
+ #
47
+ # This web service returns a list of metric values for a specific
48
+ # property and period ending date based on the specified set of
49
+ # metrics and measurement system. The property must already be shared
50
+ # with you. A full list of the reporting metrics that are available
51
+ # through this service and related web services can be found {https://downloads.energystar.gov/bi/portfolio-manager/Custom_Reporting_Metric_Inventory_en_US.xlsx here}.
52
+ # The list includes the metric name, the appropriate web service call
53
+ # for the metric, and a glossary link. It can be sorted and filtered
54
+ # for ease of finding the metrics that you need.
55
+ #
56
+ # @note Metrics that are readily available through other web services,
57
+ # such as {PortfolioManager::Services::Property::Property::Live#get_property GET /property/(propertyId)}
58
+ # and {PortfolioManager::Services::PropertyUse::PropertyUse::Live#get_property_use GET /propertyUse/(propertyUseId)}
59
+ # are not included in the reporting web services, since they are
60
+ # already accessible elsewhere.
61
+ #
62
+ # @param property_id [Integer]
63
+ # @param year [Integer]
64
+ # @param month [Integer]
65
+ # @param measurement_system [nil, "EPA", "METRIC"]
66
+ # @param metrics [Array<#to_s>]
67
+ # @return [PortfolioManager::Xml::PropertyMetricsType, PortfolioManager::Xml::ResponseType]
68
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
69
+ # @raise [PortfolioManager::HTTPResponseError]
70
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/propertyMetrics/get
71
+ def get_property_metrics(property_id, year, month, measurement_system = nil, metrics = [])
72
+ request(Net::HTTP::Get, path_for("property", property_id, "metrics"), {
73
+ "year" => year,
74
+ "month" => month,
75
+ "measurementSystem" => measurement_system,
76
+ }, {
77
+ "PM-Metrics" => metrics.collect(&:to_s).join(","),
78
+ }, nil, nil, PortfolioManager::Xml::PropertyMetricsType, basic_auth: true)
79
+ end
80
+
81
+ # Get Property Monthly Metrics
82
+ #
83
+ # This web service returns a list of metric values for a specific
84
+ # property and period ending date based on the specified set of
85
+ # metrics and measurement system. Each monthly metric will return 12
86
+ # values (a value for each month). The months returned are all months
87
+ # captured within the specified annual period ending date. The metrics
88
+ # will reflect monthly totals of meters that you have access to.
89
+ #
90
+ # @param property_id [Integer]
91
+ # @param year [Integer]
92
+ # @param month [Integer]
93
+ # @param measurement_system [nil, "EPA", "METRIC"]
94
+ # @param metrics [Array<#to_s>]
95
+ # @return [PortfolioManager::Xml::PropertyMetricsType, PortfolioManager::Xml::ResponseType]
96
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
97
+ # @raise [PortfolioManager::HTTPResponseError]
98
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/propertyMetricsMonthly/get
99
+ def get_property_monthly_metrics(property_id, year, month, measurement_system = nil, metrics = [])
100
+ request(Net::HTTP::Get, path_for("property", property_id, "metrics", "monthly"), {
101
+ "year" => year,
102
+ "month" => month,
103
+ "measurementSystem" => measurement_system,
104
+ }, {
105
+ "PM-Metrics" => metrics.collect(&:to_s).join(","),
106
+ }, nil, nil, PortfolioManager::Xml::PropertyMetricsType, basic_auth: true)
107
+ end
108
+
109
+ # Get Property Use Metrics
110
+ #
111
+ # This web service returns a list of time-weighted use detail values
112
+ # for a specific property, period ending date, and measurement system.
113
+ # The property must already be shared with you. A full list of the
114
+ # reporting metrics that are available through this service and
115
+ # related web services can be found {https://downloads.energystar.gov/bi/portfolio-manager/Custom_Reporting_Metric_Inventory_en_US.xlsx here}.
116
+ # The list includes the metric name, the appropriate web service call
117
+ # for the metric, and a glossary link. It can be sorted and filtered
118
+ # for ease of finding the metrics that you need.
119
+ #
120
+ # @param property_id [Integer]
121
+ # @param year [Integer]
122
+ # @param month [Integer]
123
+ # @param measurement_system [nil, "EPA", "METRIC"]
124
+ # @return [PortfolioManager::Xml::PropertyMetricsType, PortfolioManager::Xml::ResponseType]
125
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
126
+ # @raise [PortfolioManager::HTTPResponseError]
127
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/useDetailsMetrics/get
128
+ def get_property_use_metrics(property_id, year, month, measurement_system = nil)
129
+ request(Net::HTTP::Get, path_for("property", property_id, "useDetails", "metrics"), {
130
+ "year" => year,
131
+ "month" => month,
132
+ "measurementSystem" => measurement_system,
133
+ }, {}, nil, nil, PortfolioManager::Xml::PropertyMetricsType, basic_auth: true)
134
+ end
135
+
136
+ # Get Reasons for No Energy Score
137
+ #
138
+ # This web service returns a list of reasons that explain why the
139
+ # specific property cannot receive an ENERGY STAR score for a certain
140
+ # period ending date. If both the year and month are not provided then
141
+ # the property's current energy period ending date is used. Please
142
+ # refer to this {https://downloads.energystar.gov/bi/portfolio-manager/Alerts_Public_Reference_en_US.xlsx Alert Inventory}
143
+ # for a list of possible reasons you might see in the response. Refer
144
+ # specifically to the alerts that are denoted "yes" in the N/A
145
+ # Explanations column; these are the alerts that apply when a metric,
146
+ # like the ENERGY STAR score, cannot be computed.
147
+ #
148
+ # @param property_id [Integer]
149
+ # @param year [Integer]
150
+ # @param month [Integer]
151
+ # @return [PortfolioManager::Xml::AlertsType, PortfolioManager::Xml::ResponseType]
152
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
153
+ # @raise [PortfolioManager::HTTPResponseError]
154
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/reasonsForNoScore/get
155
+ def get_reasons_for_no_energy_score(property_id, year, month)
156
+ request(Net::HTTP::Get, path_for("property", property_id, "reasonsForNoScore"), {
157
+ "year" => year,
158
+ "month" => month,
159
+ }, {}, nil, nil, PortfolioManager::Xml::AlertsType, basic_auth: true)
160
+ end
161
+
162
+ # Get Reasons for No Water Score
163
+ #
164
+ # This web service returns a list of reasons that explain why the
165
+ # specific property cannot receive an ENERGY STAR score for a certain
166
+ # period ending date. If both the year and month are not provided then
167
+ # the property's current water period ending date is used. Please
168
+ # refer to this {https://downloads.energystar.gov/bi/portfolio-manager/Alerts_Public_Reference_en_US.xlsx Alert Inventory}
169
+ # for a list of possible reasons you might see in the response. Refer
170
+ # specifically to the alerts that are denoted "yes" in the N/A
171
+ # Explanations column; these are the alerts that apply when a metric,
172
+ # like the ENERGY STAR score, cannot be computed.
173
+ #
174
+ # @param property_id [Integer]
175
+ # @param year [Integer]
176
+ # @param month [Integer]
177
+ # @return [PortfolioManager::Xml::AlertsType, PortfolioManager::Xml::ResponseType]
178
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
179
+ # @raise [PortfolioManager::HTTPResponseError]
180
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/reporting/reasonsForNoWaterScore/get
181
+ def get_reasons_for_no_water_score(property_id, year, month)
182
+ request(Net::HTTP::Get, path_for("property", property_id, "reasonsForNoWaterScore"), {
183
+ "year" => year,
184
+ "month" => month,
185
+ }, {}, nil, nil, PortfolioManager::Xml::AlertsType, basic_auth: true)
186
+ end
187
+ end
188
+
189
+ # Test Environment
190
+ module Test
191
+ end
192
+ end
193
+
194
+ # All Reporting Services
195
+ module All
196
+ # Live Environment
197
+ module Live
198
+ include PortfolioManager::Services::Reporting::Reporting::Live
199
+ end
200
+
201
+ # Test Environment
202
+ module Test
203
+ include PortfolioManager::Services::Reporting::Reporting::Test
204
+ end
205
+ end
206
+ end
207
+ end
208
+ end
@@ -0,0 +1,76 @@
1
+ require "net/http"
2
+
3
+ module PortfolioManager
4
+ module Services
5
+ # Target Finder Services
6
+ #
7
+ # Target Finder Services allows you to retrieve the estimated annual energy
8
+ # consumption associated with specific property design characteristics, and
9
+ # an energy performance goal expressed as either an ENERGY STAR score or %
10
+ # Better than Median. Conversely, you may also retrieve the ENERGY STAR
11
+ # score and % Better than Median associated with the estimated annual energy
12
+ # consumption of a specific property design. These metrics allow you to
13
+ # estimate how much energy your property would need to consume annually to
14
+ # reach your design energy goal, or conversely, determine the ENERGY STAR
15
+ # score that would be associated with your design estimated energy
16
+ # consumption. Target Finder Services does require user authentication but
17
+ # the property design information that you submit will not be saved for
18
+ # later reference. Your results can be returned in the set of units that you
19
+ # specify.
20
+ #
21
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/targetFinder
22
+ module TargetFinder
23
+ # Target Finder
24
+ module TargetFinder
25
+ # Live Environment
26
+ module Live
27
+ # Target Finder
28
+ #
29
+ # This web service allows you to retrieve the estimated annual energy
30
+ # consumption associated with specific property design
31
+ # characteristics, and an energy performance goal expressed as either
32
+ # an ENERGY STAR score or % Better than Median. Conversely, you may
33
+ # also retrieve the ENERGY STAR score and % Better than Median
34
+ # associated with the estimated annual energy consumption of a
35
+ # specific property design. These metrics allow you to estimate how
36
+ # much energy your property would need to consume annually to reach
37
+ # your design energy goal, or conversely, determine the ENERGY STAR
38
+ # score that would be associated with your design estimated energy
39
+ # consumption. Target Finder Services does require user authentication
40
+ # but the property design information that you submit will not be
41
+ # saved for later reference. Your results can be returned in the set
42
+ # of units that you specify.
43
+ #
44
+ # @param target_finder [PortfolioManager::Xml::UnAuthDesignType]
45
+ # @param measurement_system ["EPA", "METRIC"]
46
+ # @return [PortfolioManager::Xml::PropertyMetricsList, PortfolioManager::Xml::ResponseType]
47
+ # @raise [PortfolioManager::HTTPBasicCredentialsNotFoundError]
48
+ # @raise [PortfolioManager::HTTPResponseError]
49
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api/targetFinder/targetFinder/post
50
+ def target_finder(target_finder, measurement_system = "EPA")
51
+ request(Net::HTTP::Get, path_for("targetFinder"), {
52
+ "measurementSystem" => measurement_system,
53
+ }, {}, target_finder, "targetFinder", PortfolioManager::Xml::PropertyMetricsList, basic_auth: true)
54
+ end
55
+ end
56
+
57
+ # Test Environment
58
+ module Test
59
+ end
60
+ end
61
+
62
+ # All Target Finder Services
63
+ module All
64
+ # Live Environment
65
+ module Live
66
+ include PortfolioManager::Services::TargetFinder::TargetFinder::Live
67
+ end
68
+
69
+ # Test Environment
70
+ module Test
71
+ include PortfolioManager::Services::TargetFinder::TargetFinder::Test
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,21 @@
1
+ module PortfolioManager
2
+ # Web Services
3
+ #
4
+ # For your convenience, EPA has organized web services into the following
5
+ # major categories. Click on each category to view the list of web services
6
+ # and their corresponding XML schemas. If you want to download all the
7
+ # schemas, please click {https://portfoliomanager.energystar.gov/schema/18.0/portfoliomanager-schemas-18.0.zip here}.
8
+ #
9
+ # @see https://portfoliomanager.energystar.gov/webservices/home/api
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"
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module PortfolioManager
2
+ VERSION = "0.0.1"
3
+ end